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 常数”。

(0)

相关推荐

  • 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($

随机推荐