【關於print_r的一個怪現象】解決方案
來源:互聯網
上載者:User
【關於print_r的一個怪現象】
class ColumnVo extends Vo{
public $column_id;
public $column_name = array('label'=>'欄目名稱','value'=>'haha');
.............
}
-------------------------------------------
if($property=='column_name'){
print_r($this->$property['value']);
echo '
';
echo 'Form value is: '.$value.'
';
$this->$property['value'] = $value;
print_r($this->$property['value']);
echo
';
print_r($this->$property);
}
-----------------輸出----------------------
Undefined property: ColumnVoMysql 報錯
Form value is: cccccccc
cccccccc
Array ( [label] => 欄目名稱 [value] ='haha'> )
-------------------------------------------
第二行輸出說明值的卻已經賦上去了。 但是列印數組卻只列印VO原有的值, [type] => string 這個是VO原來就寫死的。
總結:print_r 有點懶載入的味道,我被print_r害慘了。
------解決方案--------------------
文法歧義造成的
你可以改成
$this->{$property}['value']
$this->{$property}['value'] = $value;
……
print_r……
------解決方案--------------------
還是用常規的方法好。不要直接改屬性,通過魔術的或者自訂的get,set方法多好。會避免很多問題。