PHP警告Cannot use a scalar value as an array的解决方法

看到php的错误日志里有些这样的提示:

[27-Aug-2011 22:26:12] PHP Warning: Cannot use a scalar value as an array in /www/hx/enjoy.php on line 14
[27-Aug-2011 22:26:18] PHP Warning: Cannot use a scalar value as an array in /www/hx/enjoy.php on line 14

检查源程序,大概是下面这样子:


代码如下:

$arr_hx = $mem->get('hx');
if(!$arr_hx) {
$arr_hx[‘a'] = 'b';
$mem->set('hx',$arr_hx);
}

基本明白了,在$mem->get没有得到值时返回的是false,此时$arr_hx是false,布尔值,然后又把它当成数组用了,导致产生了这样的提示。其实也是变量没定义的一种情况,在赋值前加一句 $arr_hx = array() 解决问题。

查了一下,有如下的说明:
引用
需要注意的是类型的转换:
如果一个变量名(如a)已经被定义为非数组类型,例如integer,那么a可以被转为floating point、string(甚至是object类型),但不可以是数组,即a[0]=1;是错误的,php会报出这样的警告“Cannot use a scalar value as an array“。即使a被定义为一维数组,也不能转为高维数组。

(0)

相关推荐

  • Scala解析Json字符串的实例详解

    Scala解析Json字符串的实例详解 1. 添加相应依赖 Json解析工具使用的 json-smart,曾经对比过Java的fastjson.gson.Scala的json4s.lift-json.其中 json-smart 解析速度是最快的. <dependency> <groupId>net.minidev</groupId> <artifactId>json-smart</artifactId> <version>2.3<

  • ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别

    ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别      主要有这么几种,cmd.ExecuteReader();cmd.ExecuteNonQuery();cmd.ExecuteScalar();cmd.ExecuteXmlReader();) 1,ExecuteReader();返回一个SqlDataReader对象或OleDbDataReader对象,这个看你的程序的需要去 做.可以通过这个

  • play for scala 实现SessionFilter 过滤未登录用户跳转到登录页面

    一.编写SessionFilter.scala代码 package filters import javax.inject.{Inject, Singleton} import akka.stream.Materializer import controllers.routes import play.api.mvc.{Filter, RequestHeader, Result, Results} import scala.concurrent.Future @Singleton class S

  • Scala小程序详解及实例代码

    Scala小程序详解 1. 交互式模式 在命令行窗口中,输入Scala命令: xiaosi@Qunar:~$ scala Welcome to Scala 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_91). Type in expressions for evaluation. Or try :help. scala> 第一个小程序: xiaosi@Qunar:~$ scala Welcome to Scala 2.11.8 (

  • 浅谈Scala的Class、Object和Apply()方法

    Scala中如果一个Class和一个Object同名,则称Class是Object的伴生类.Scala没有Java的Static修饰符,Object下的成员和方法都是静态的,类似于Java里面加了Static修饰符的成员和方法.Class和Object都可以定义自己的Apply()方法,类名()调用Object下的Apply()方法,变量名()调用Class下的Apply()方法. class ApplyTest{ def apply() { println("This is a class,

  • Windows7下安装Scala 2.9.2教程

    1. 下载Scala 2.9.2 由于最新的Scala 2.10稳定版还没完成,所以最好是下载最新的Scala稳定版:2.9.2版. 下载地址:http://www.scala-lang.org/downloads/distrib/files/scala-2.9.2.msi 下载msi版本的好处在于,环境变量自动配置,否则你需要手动设置两个环境变量. SCALA_HOME环境变量,指向Scala的安装目录. PATH环境变量,要包含 %SCALA_HOME%\bin的值. 2. 安装Scala

  • php下关于Cannot use a scalar value as an array的解决办法

    今天在测试php程序的时候,出现了一个错误提示:Cannot use a scalar value as an array,这个错误提示前几天也出过,当时好像稍微调了一下就好了,也没深究,今天却又出现了. 不能再糊弄了,得找出原因和解决办法,于是我就去网上搜啊找啊,找了很久都没找到结果,不是网上搜不到这样的问题,而是很少有人做正面的准确的回答.最后这篇文章的一段文字让我一下子弄明白了怎么回事. -------------- 需要注意的是类型的转换: 如果一个变量名(如a)已经被定义为非数组类型,

  • 深入理解Scala函数式编程过程

    深入理解Scala函数式编程过程 我们马上开始一段变态的过程 如果要求立方和,可以这么做 35 * 35 * 35 68 * 68 * 68 没毛病,抽象一点儿,写个函数: def cube(n: Int) = n * n * n cube(35) cube(68) 省事儿了,如果求1到10的立方和,OK,写个递归 def cube(n: Int) = n * n * n def sumCube(a: Int, b: Int): Int = if (a > b) 0 else cube(a) +

  • PHP警告Cannot use a scalar value as an array的解决方法

    看到php的错误日志里有些这样的提示: [27-Aug-2011 22:26:12] PHP Warning: Cannot use a scalar value as an array in /www/hx/enjoy.php on line 14 [27-Aug-2011 22:26:18] PHP Warning: Cannot use a scalar value as an array in /www/hx/enjoy.php on line 14 检查源程序,大概是下面这样子: 复制

  • PHP date()函数警告: It is not safe to rely on the system解决方法

    近来总是有系统邮件提示,开始没在意,后来不断提示就看了一下.提示以下信息 复制代码 代码如下: PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of t

  • 16种C语言编译警告(Warning)类型的解决方法

    当编译程序发现程序中某个地方有疑问,可能有问题时就会给出一个警告信息.警告信息可能意味着程序中隐含的大错误,也可能确实没有问题.对于警告的正确处理方式应该是:尽可能地消除之.对于编译程序给出的每个警告都应该仔细分析,看看是否真的有问题.只有那些确实无问题的警告才能放下不管. 说明: 由于编译的警告各种各样,根本不可以一一罗列出来,下面只是列举出比较典型的一些警告,还有一些警告,大家只要根据字面意思,就可以很快的查找出来,并解决之. 类型1: 显示:warning: implicit declar

  • iOS8调用相机报警告Snapshotting a view的解决方法

    因为我这也报了这个警告,所以把解决方法写到这个地方看是否其他人用的到,具体解决方法: 错误代码:Snapshotting a view that has not been rendered results in an empty snapshot. Ensure your view has been rendered at least once before snapshotting or snapshot after screen updates. 问题分析:iOS8在调用系统相机拍照时,会有

  • 警告1909无法创建快捷方式VMware Workstation Pro.Ink的图文解决方法(附 VMware_workstation 12的安装方法)

    电脑之前装过VMware 10,很长时间没用就卸载了,也没有在意卸载的干不干净,直到最近需要用Linux系统,重新安装了VMware 12,就出现下面这样的情况: 警告1909.无法创建快捷方式VMware Workstation Pro.Ink. 从网上找了各种办法试过之后都不太理想,后来仔细看看上面的提示,意思是说无法创建快捷方式,可能是用户在快捷方式文件夹的读写权限不够,那就去找到存放快捷方式的文件夹去试试: 就是下面这个路径,就可以找到快捷方式文件夹! 复制代码 代码如下: C:\Pro

  • FileZilla Server搭建FTP服务器配置及425错误与TLS警告解决方法详解

    我们为大家提供FileZilla下载链接: FileZilla 客户端:FileZilla_3.24.0_win64-setup.exe: FileZilla Server服务端绿色汉化版:FileZilla_Server-0_9_59.exe: 在服务器上安装并配置服务端: 安装过程这里不再赘述,一直下一步,在跳出弹窗时勾选"Always connect to this server",然后点击"Connect"即可(密码可自行设置或者为空): 默认安装完会有如下

  • Python3 pip3 list 出现 DEPRECATION 警告的解决方法

    需要在 ~/.pip/pip.conf 配置文件中加入下面的语句,避免这类警告: 没有目录或没有配置文件需要自己新建 mkdir ~/.pip/ cd ~/.pip touch pip.conf vi pip.conf 添加 [list] format=columns 以上这篇Python3 pip3 list 出现 DEPRECATION 警告的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • mysql登录警告问题的解决方法

    一.前言 我们在登录mysql的时候经常会看到一句警告: Warning: Using a password on the command line interface can be insecure. 这让人看着很不舒服,并且当在写脚本的时候这个警告输出到屏幕上更让人感觉难受. 二.解决办法 这个警告是mysql自带的,他是想告诉你在屏幕上直接输入mysql密码并显示是不安全的. 1.解决办法一(看一下就行没有任何用) 这个解决办法相对简单,在你登录mysql的时候-p后面不紧跟任何字符串.

  • Sql server 2005安装时ASP.Net版本注册要求警告的解决方法

    在安装SQL Server 2005 时出现ASP.Net版本注册要求(警告),提示找不到ASP.Net 在 Microsoft Internet 信息服务(IIS)中的版本注册信息. 首先在确认安装了IIS,并且安装了IIS的ASP.Net组件,位置在[Internet 信息服务]--[万维网服务]--[应用程序开发 在安装SQL Server 2005 时出现ASP.Net版本注册要求(警告),提示找不到ASP.Net 在 Microsoft Internet 信息服务(IIS)中的版本注册

随机推荐