在php中安全地访问对象的属性

时间:2014-10-16 13:06:50

标签: php

这总是安全还是在某些情况下会导致错误?

if(isset($myVar) && $myVar->myProp !== 'error') {
   ...

2 个答案:

答案 0 :(得分:1)

这似乎是动态定义属性的一种情况。尽管使用property_exists()是可能的(也是有效的),但在类定义中实际强制执行该属性的存在会更好

Class someExample {
  public $myProp = false; // now it will ALWAYS exist for any instance of someExample
}

答案 1 :(得分:0)

是的,如果该属性不存在,将导致错误。使用property_exists

检查它是否存在
$myVar = new myVar();
if( (isset($myVar) && property_exists('myVar', 'myProp')) 
     && $myVar->myProp !== 'error' ) {

}