$a = 5;
if (empty($a)) {
echo "普通变量判断正常,这行不会输出";
}$order->order_product_name = 5;
if (empty($order->order_product_name)) {
echo "对象变量已经赋值为5,为何empty仍判断为空输出这行?"
};$order是Order类,里面声明了魔术函数:
public function __get($property_name){
return $this->$property_name;
}

解决方案 »

  1.   

    刚刚做了下测试,发现empey()不能以函数返回值做为参数。
    这里$order->order_product_name等于执行了get()函数,得到的是返回值。那么如何判断oder成员变量才好?成员变量声明public?
    或者为此傻了吧唧的新定义变量再判断?例如$a=$order->order_product_name; empty($a)
      

  2.   

    做了下测试,empty()不能以函数返回值为参数。
    这里$order->order_product_name相当于get()的返回值。那如何对成员变量做empty检测?
    1、成员声明为public?不用这么夸张吧……
    2、为此新定义变量以做判断?例如,$a = $order->order_product_name; empty($a)如何是好呢……在线等
      

  3.   

    首先你可以再类中定义个函数来判断变量.
    其次empty()是用来检测变量的,参数是变量名,而不是一个值
      

  4.   

    本帖最后由 xuzuning 于 2012-08-28 14:59:43 编辑