ホームページ > バックエンド開発 > PHPチュートリアル > 【关于print_r的一个怪现象】解决方法

【关于print_r的一个怪现象】解决方法

WBOY
リリース: 2016-06-13 10:12:42
オリジナル
876 人が閲覧しました

【关于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方法多好。会避免很多问题。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート