【PHP】下らねぇ質問はここに書き込みやがれ 65at PHP【PHP】下らねぇ質問はここに書き込みやがれ 65 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト46:nobodyさん 08/02/27 13:33:28 >>44 >>7 47:nobodyさん 08/02/27 13:41:47 pho4と5ではそこらへん挙動が変わってる でも呼び出す側でfoo(&$obj);ってする事は 無いと思うんだけど 48:nobodyさん 08/02/27 14:34:18 おかしいなぁ。確かに、$thisと&$thisで挙動が変わっているんだよ。 PHP4ね。フレームワークでいろいろ実行される一部分の処理だから 具体的にどこが問題なのかわからないや。 49:nobodyさん 08/02/27 15:20:59 CakePHPの問題だったよ。 PHP4でoverloadを使ったとき(多くのクラスで使われている)の問題。 バグなのか仕様なのかわからんけど。 class A extends overloadable { function foo(&$obj) { $obj->value=2; } } class B {} $a = new A(); $b = new B(); $b->value=1; $a->foo($b); print_r($b); これを実行すると1が表示される。 $a->foo($b); を $a->foo(&$b) ; に変更すると 2が表示される 50:nobodyさん 08/02/27 15:33:09 CakePHP部分を取り除いて通常のPHPにしました。 これと似たような問題?バグであり回避は不可能なのかな? php4で overload() して __call() を定義するとリファレンスで返せなくなる? http://blog.livedoor.jp/a_day_in_the_radio/archives/50660248.html class A { function foo(&$obj) { $obj->value=2; } function __call($method, $params, &$return) { return true; } } overload('A'); class B {} $a = new A(); $b = new B(); $b->value=1; $a->foo($b); print_r($b); 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch