Notice: Trying to get property of non-object problem(PHP)解决办法
我这里实际是调用了一个zend的数据库访问的方法,使用了fetchAll方法,但由于数据库中没有该记录,所以返回的对象是null,所以我就判断对象是否为null:
if($obj==null){
...
}
这么写的结果,就是产生了上面那个notice,也真是奇怪,对象为null,竟然不能访问了?
翻查资料后,发现,判断是否为null,需要这么判断:
if (isset($obj)) {
echo "This var is set set so I will print.";
}
这个isset是做什么的呢?
isset函数是检测变量是否设置。
格式:bool isset ( mixed var [, mixed var [, ...]] )
返回值:
若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节(”\0″)并不等同于 PHP 的 NULL 常数。
警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。
看来刚才我那边的判断所出的问题,就是因为这个“是一个 NULL 字节(”\0″)并不等同于 PHP 的 NULL 常数”。
相关推荐
-
PHP新手NOTICE错误常见解决方法
刚学习PHP,不久,一般就看看手册,和一本叫PHP和mysql web开发的. 最近在整留言板,刚才遇到个问题. 页面中,好多类似 Notice: Use of undefined constant title - assumed 'title' in D:\wamp\www\phpmysqlweb\bbs\list.php on line 17 页面很难看,很纠结啊,我用的是wamp集成包. 百度了下,看来好多朋友也有这个情况. Notice意思是使用了没有被声明的变量,但是程序不会影响使用.
-
屏蔽PHP默认设置中的Notice警告的方法
PHP的默认设置是显示Notice警告提示,这会造成页面无法正常显示出来.你有没定义的变量直接使用了.不过编PHP的时候本来就不像C++那么严格,编程的时候经常还会利用这个特点. 在把自己辛辛苦苦编写的PHP程序部署到服务器上的时候,相信这样的提示很多人都见过: PHP Notice: Undefined variable PHP Notice: Undefined index 看看吧,你有没定义的变量直接使用了.不过编PHP的时候本来就不像C++那么严格,编程的时候经常还会利用这个特点.PHP
-
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
举例说明: 在Windows环境下:原本在php4.3.0中运行正常的程序,在4.3.1中为何多处报错,大体提示为:Notice:Undefined varialbe:变量名称. 例如有如下的代码: 复制代码 代码如下: if (!$tmp_i) { $tmp_i=10; } 在4.3.0中运行正常,在4.3.1中运行会提示Notice:Undefined varialbe:tmp_i 问题下下: 1.问题出在哪里? 2.应如何修改这段代码? 3.不改段代码,如何修改php.ini中的设置使原来
-
Notice: Undefined index: page in E:\PHP\test.php on line 14
治標不治本的就是將php.ini內的reporting部份修改,讓notice不顯示 error_reporting = E_ALL; display all errors, warnings and notices 改成 error_reporting = E_ERROR & ~E_NOTICE & ~E_WARNING 不然 isset($_GET["page"])做個if-else判斷!! ----修正後原始碼如下---- if(isset($_GET["
-
深入理解PHP原理之Session Gc的一个小概率Notice
如果在ubuntu/Debian下, 采用apt安装的PHP, 那么在使用Session的时候, 就可能会有小概率遇到这个提示. 复制代码 代码如下: PHP Notice: session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /home/laruence/www/htdocs/index.php on line 22 这是因为, 在PHP中, 如果使用fi
-
PHP使用Session遇到的一个Permission denied Notice解决办法
如果在ubuntu/Debian下, 采用apt安装的PHP, 那么在使用Session的时候, 就可能会有小概率遇到这个提示. 复制代码 代码如下: PHP Notice: session_start(): ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /home/laruence/www/htdocs/index.php on line 22 这是因为, 在PHP中,
-
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
AppServ,XAMPP,WAMP都是集成了apache,mysql,php的套装,使用起来比较方便,就不需要再去一个个的配置php,apache和mysql. 下载相应的安装包进行安装,不过对于php项目来说,WAMP会默认显示NOTICE信息,页面上一大段一大段的,比较难看.怎么去掉这些警告信息呢?先找到php.ini文件. 其路径是:(我的安装路径是D:\wamp)D:\wamp\bin\php\php5.3.10\php.ini ,打开该文件. 在文件中搜索,error_reporti
-
PHP提示Notice: Undefined variable的解决办法
PHP默认配置会报这个错误,我的PHP版本是5.2.13,存在这个问题: Notice: Undefined variable 这就是将警告在页面上打印出来,虽然这是有利于暴露问题,但实现使用中会存在很多问题. 需要设置显示错误级别,来解决问题. 网络上的通用解决办法是修改php.ini的配置: 解决方法: 1) error_reporting设置: 找到error_reporting = E_ALL 修改为error_reporting = E_ALL & ~E_NOTICE 2) regis
-
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Notice: Use of undefined constant ALL_PS - assumed 'ALL_PS' in E:\Server\vhosts\www.lvtao.net\global.php on line 50 Notice: Undefined index: EaseTemplateVer in E:\Server\vhosts\www.lvtao.net\libs\template.core.php on line 51 Notice: Use of undefined
-
php Notice: Undefined index 错误提示解决方法
第一种方法:如果不影响程序的正常执行,可以采用屏蔽的方法 可以在代码的第一行 加上 error_reporting(E_ALL ^ E_NOTICE); 关闭掉 NOTICE错误的警告 第二种方法:定位到具体的行,根据提示解决.例如elseif ($_POST['istrue'] == 'ok'),如上代码,没有提交istrue这个,所以肯定是有问题的. 可以用如下代码解决上面先判断 复制代码 代码如下: if(array_key_exists( 'istrue',$_POST)) { if($
随机推荐
- [译]ASP.NET Core 2.0 网址重定向的方法
- jquery的ajax异步请求接收返回json数据实例
- Android中gravity、layout_gravity、padding、margin的区别小结
- 用Python的SimPy库简化复杂的编程模型的介绍
- asp.net下实现支持文件分块多点异步上传的 Web Services
- 如何设置mysql允许外网访问
- Content-type 的说明
- 动态生成的IFRAME,设置SRC时的问题解决分析
- Web前端新人笔记之jquery入门心得(新手必看)
- Android手机联系人快速索引(手机通讯录)
- js判断页面中是否有指定控件的简单实例
- php 页面之间传值的三种方法实例代码
- Java微信公众平台开发(1) 接入微信公众平台
- asp.net配置会话状态Session实现代码
- android实现圆角矩形背景的方法
- python机器学习理论与实战(二)决策树
- TensorFLow用Saver保存和恢复变量
- js实现以最简单的方式将数组元素添加到对象中的方法
- 取numpy数组的某几行某几列方法
- 在JS循环中使用async/await的方法