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

看到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被定义为一维数组,也不能转为高维数组。

时间: 2025-01-07 18:02:11

PHP警告Cannot use a scalar value as an array的解决方法_php技巧的相关文章

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

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

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

近来总是有系统邮件提示,开始没在意,后来不断提示就看了一下.提示以下信息 复制代码 代码如下: 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

php警告Creating default object from empty value 问题的解决方法_php技巧

解决方法是找到报错的位置然后看哪个变量是没有初始化而直接使用的,将这个变量先实例化一个空类.如: 复制代码 代码如下: $ct = new stdClass(); 修改文件相应代码,如: 复制代码 代码如下: if ( ! isset( $themes[$current_theme] ) ) { delete_option( 'current_theme' ); $current_theme = get_current_theme();}$ct = new stdClass(); <!--添加这

屏蔽PHP默认设置中的Notice警告的方法_php技巧

PHP的默认设置是显示Notice警告提示,这会造成页面无法正常显示出来.你有没定义的变量直接使用了.不过编PHP的时候本来就不像C++那么严格,编程的时候经常还会利用这个特点. 在把自己辛辛苦苦编写的PHP程序部署到服务器上的时候,相信这样的提示很多人都见过: PHP Notice: Undefined variable PHP Notice: Undefined index 看看吧,你有没定义的变量直接使用了.不过编PHP的时候本来就不像C++那么严格,编程的时候经常还会利用这个特点.PHP

获取PHP警告错误信息的解决方法_php实例

代码如下所示: 复制代码 代码如下: <?php/*** 更新非法字符.發送錯誤信息*  * @author* @copyright 2009-06-10*/error_reporting(E_ERROR | E_WARNING | E_PARSE);set_error_handler('displayErrorHandler');//自定義錯誤//調試信息echo "time:".date("Y-m-d H:i:s")."\n";//數據

Xcode 升级后,常常遇到的遇到的警告、错误,解决方法(转)

从sdk3.2.5升级到sdk 7.1中间废弃了很多的方法,还有一些逻辑关系更加严谨了.1,警告:"xoxoxoxo"  is deprecated解决办法:查看xoxoxoxo的这个方法的文档,替换掉这个方法即可. 2,警告:Declaration of "struct sockaddr" will not be visible outside of this function解决办法:在你的开源.m文件中添加 #import 3,警告:Implicit conv

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

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

使用iOS推送时警告错误的解决方法_IOS

在使用iOS推送时,出现下面错误: **[1412:60b] You've implemented -[<UIApplicationDelegate> application:performFetchWithCompletionHandler:], but you still need to add "fetch" to the list of your supported UIBackgroundModes in your Info.plist. **[1412:60b]

英特尔SE7230NH1-E开机警告The system chassis was opened的解决方法

今天从淘宝弄了一块英特尔SE7230NH1-E的主板,装机之后进行开机的测试,发现检测完成之后,弹出一个开机警告:The system chassis was opened. Press the Enter key to continue. 回车之后,正常进入操作系统,不过每次开机的话,都要敲一下回车的确太麻烦,下面教大家解决方法, 使用这款主板的朋友们看到这个提示不要紧张,这不是机器有问题,而是这款主板支持开机箱警告, 而且默认这项功能是打开的, 而大家平常使用的普通机箱是不支持这项功能的,