[PHP-users 6072] PHP4.1.2のregister_shutdown_function()について

kentarou_ishimaru php-users@php.gr.jp
Mon, 11 Mar 2002 15:53:27 +0900


kehiといいます。

register_shutdown_function()を用いたアプリで
PHP3.0.18-i18n-ja-2 及びPHP4.0.6までは
特に怒られることなく動いていたのですが、
先般PHP4.1.2にアップした際に
Warning: Unable to call (null)() - function does not exist in Unknown on 
line 0

といったようなワーニングが出るようになりました。

googleで漁ったところ
http://aspn.activestate.com/ASPN/Mail/Message/php-qa/907839
のようなスレッドは出てきましたが、
クラスなどを用いたロジックではないので
原因は特定できていません。

とはいえ、ワーニングが出るだけで機能的には
以前同様の処理は実現できていますので現在は
error_reporting(FATAL + ERROR);
で消して誤魔化していますが、なんか気持ち悪いです。
どなたか同じような現象になった方はいらっしゃいますでしょうか?
既出でしたらポインタでも結構です。
よろしくお願いします。

環境は
FreeBSD 4.4-RELEASE
Apache/1.3.23
PHP/4.1.2

phpのコンフィグは
'./configure' '--enable-mbregx' '--with-apxs=/usr/local/apache/bin/apxs' 
'--with-pgsql=/usr/local/pgsql' '--without-mysql' '--with-db' '--enable-
mbstring' '--enable-mbstr-enc-trans' '--enable-track-vars' '--enable-
trans-sid' '--disable-debug'
です。

例えば以下のロジックをそのままコピーペーストで再現します。
<?php
	function Get_test($val){
		$myFile = fopen("test.txt","w");
		if(!($myFile)){
			print("error!!(write)");
			exit;
		}
		fputs($myFile, "$val");
		fclose($myFile);
	}
	register_shutdown_function(Get_test($REMOTE_ADDR));
	print("<html><body>");
	print("test");
	print("</body></html>");
	exit;
?>

結果:
test
Warning: Unable to call (null)() - function does not exist in Unknown on 
line 0

(生成されたtest.txtにはリモートアドレスが張り付いています)

☆_/_/_/_/石丸 健太郎(kehi@scg.fuji-ric.co.jp)_/_/_/_/★
    富士総合研究所 情報企画室
    My WebSite is Station kehi where's
    http://kehi.yi-web.ne.jp/     check it out !!  (^^)!
  投げれば答えが返ってくる。あなたのネットのブーメラン 〜e-リサ〜
  http://eresearch.fuji-ric.ne.jp/
★_/_/_/_/_/_/_/_/_/_/_/__/_//_/_/_/_/_/_/_/_/☆