博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Notice: Trying to get property of non-object problem(PHP)解决办法 中间件只能跳转不能返任何数据...
阅读量:5954 次
发布时间:2019-06-19

本文共 995 字,大约阅读时间需要 3 分钟。

这里实际是调用了一个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 常数”。

 

中间件中下列的写法会报标题的错误

public function handle($request, Closure $next)     {
$user_info=$request->session()->get('user_info'); if(!$user_info) {
return ['status' => 0, 'msg' => 'require login'];//只能跳转到路由 } return $next($request); }

 

转载地址:http://hiexx.baihongyu.com/

你可能感兴趣的文章
作为一个程序员必备的素质
查看>>
Webpack入门教程十四
查看>>
实现按字符串的第一个字符的首字母排序
查看>>
睡眠排序法-objective C版的代码
查看>>
对于数组使用sizeof(a)和使用sizeof(a[0])
查看>>
小猿圈WEB前端之HTML5+CSS3面试题(一)
查看>>
375 Inscribed Circles and Isosceles Triangles 等腰三角形 内接圆 圆周率PI表示
查看>>
js如何在指定页面跳转到另一指定页面
查看>>
jQuery判断checked的三种方法
查看>>
第五次作业
查看>>
【翻译】Ext JS——高效的编码风格指南
查看>>
抽屉效果的实现(DrawerLayout和SlidingMenu的对比)
查看>>
【Unity Shaders】Vertex & Fragment Shader入门
查看>>
Android 和 PHP 之间进行数据加密传输
查看>>
写给我--过去,现在,未来
查看>>
关于jacob支持BSTR类型的经验总结
查看>>
HDU 1532 Drainage Ditches 分类: Brush Mo...
查看>>
net core 2 读取appsettings.json
查看>>
在微博中应用PageRank算法
查看>>
项目日志一
查看>>