アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
PHPは恐ろしい. (スコア:2)
>Changed destructor mechanism so that destructors are called prior to request shutdown. (Marcus)
とあるんですが,これ見てびっくりしました.
昔からPHPのエンジンには,とんでもないバグ(*1)が多いのですが
デストラクタが起動される仕組みなんてのは
スクリプトエンジンの最重要な機能の一つなわけで,正常に動いて当然な部分です.
そんな肝心な部分に,PHP5.0.0をリリースした後から修正(Fixed)でなく変更(changed)が入るなんて…
相変わらずPHPは恐ろしいです.
(*1)たとえば,PHP-4.2.2では
GETやPOSTのデータが一部失われるという恐ろしいバグが登場しています.
しかも困ったことに,PHP-4.2系のオフィシャルなリリースは
PHP-4.2.2で止まっています.最低ー.
Re:PHPは恐ろしい. (スコア:1)
>スクリプトエンジンの最重要な機能の一つなわけで,正常に動いて当然な部分です.
「動いて欲しい」のは正にその通りなのですが、
「動いて当然(動いてくれる)」かどうかは、ちょっと微妙な問題だそうですよ、デストラクタって。
あ。Object(単なるメモリの塊)が解放されるかどうかっていう問題は、カタがついています。
#MarkSweapなら問題なしとか、参照係数法だと特殊な細工しないと循環参照でヘタるとか。
問題なのは、Objectに付随する外部リソース(FILEポインタとかかな)の解放タイミングを具体的に司る、
「解放のときに自動的に呼んでもらえる(はずの)ファイナライザ(Java語でいえば)」を呼ぶタイミングなんだそうです。
これの適切なタイミングを(自動的に)決めるってのは、なんか難しい問題なんだそうで。
…ということでしたよね、たしか?>Ruby界隈
んー。Unixでいう古典的な(フィルタっぽい)プログラムだと
リソースを解放し損ねても、最悪でもプロセス落ちるときに片付けてくれる、とも言いますね。
が、
そういやPHPとかは鯖で常駐するタイプでしたっけか。
ちょっと辛いかな…
Re:PHPは恐ろしい. (スコア:0)
> スクリプトエンジンの最重要な機能の一つなわけで,正常に動いて当然な部分です.
べつに最重要とはいえないでしょ。
そもそもプログラマーはデストラクタ起動タイミングに依存したコードはなんて書くべきではないからね。(オブジェクト以外の)リソースは明示的に開放するべき。