[BACK]


>Jun 27,2005 (Mon) 20:03 - なんかまたPHPクオリティ確かめちゃったよ

PHP5より、クラス内で自分自身($this)を書き換えようとすると

PHP Fatal error: Cannot re-assign $this in /usr/home/tsukimiya/hoge.php on line xxx

と怒られて、書き換えが出来なくなる、という変更がかかっています。
以前、pukiwikiが動かなくなっていたのはこれ。
で、まあここまでは自分がまるごとPHPに書いていたりいろんなところで言ってるのでまあいいとして。

<?php
$this = 'hoge';
?>

実はこれだけで死ぬ、という話。
sugeeeeeeee!
$thisという変数名を無条件に封印ですか!
まあ、そんなわけでPHP4/5両対応コード書く人は気をつけた方がいいです。

と、この話をしたらhaltさんが楽しげな回避方法作ってた。

intval($this);
$hoge = 'this';
$$hoge = 'unke';
var_dump($this);

sugeeeeeeeeeeee!
絶対に他のバグ生みそう・・・。
よい子のみんなは真似しないように!

・ Maru - Jun 28,2005 (Tue) 00:15

PHPのバージョンアップの際に、罠にハマらないよう、気を付けないと。


名前とか: (省略可)
コメント:

パスワード:


上に表示されている画像に書かれている文字を入力してください。:

[BACK]