以下のようなプログラムを書きましたが、表示結果はtest2ああああああ
です。
このうち、「ああああああ」が出力される原因がわかりません。
宣言していない$cの中身になぜか$this->$bbの値が代入されてます。
<?php class aa { public function func() { $this->$bb = 'ああああああ'; $b = 'test2'; return $b; } // 追加 public $c = 1; } $x = new aa(); echo $x->func(); echo $x->$c;
Notice: Undefined variable が出ないようにデバッグしよう、話はそこからだ。
これ、いくつかのバージョンで試しましたが、動きません。動作したバージョンはいくつでしょうか?Fatal error: Cannot access empty property in on line 6
phpのバージョンはコマンドを叩いてみたところ「PHP 7.1.7 (cli) (built: Jul 15 2017 18:08:09) ( NTS )」と出ました。エラーの出し方のデフォルトの設定内容が原因かもしれませんが私の環境ではエラーメッセージが全く出ないです。
public $c = 1;足したね? それを参照したいなら、echo $x->c;だよ、echo $x->$c;じゃないよ
回答2件
あなたの回答
tips
プレビュー