0

PHP 5.3で正常に機能し、PHP5.4では機能しなくなったコードに問題があります。コードが機能する元の環境は次のとおりです。

Ubuntu 11.04 Lighttpd 1.4.29 PHP 5.3

Mac OSX 10.7.4 Apache 2.0.63 PHP 5.3

新しい環境は次のとおりです。

Android 4.0.4 Lighttpd 1.4.29 PHP 5.4.4

問題のあるコードを2つの単純なファイルにまとめました。

[test.class.php]

class Test {
    public $testProp1;
    
    function setTestProp1($value){
        $this->testProp1 = $value;
        return ($this->testProp1 != '') ? true : false;
    }
    
    function doSomething()
    {
        if( $this->testProp1 )
        { echo "Just do some " . $this->testProp1; }
        else
        { echo "Just do nothing"; }
    }

}

[debug.php]

error_reporting(E_ALL);
require "test.class.php";

$myTest = new Test();
$myTest->setTestProp1("foo");

$myTest->doSomething();

PHP 5.3を使用するシステムでは、出力は次のようになります。

いくつかのfooを実行してください

PHP 5.4を使用するシステムでは、出力は次のようになります。

警告:5行目の/data/www/test.class.phpの空の値からデフォルトオブジェクトを作成しています

注意:未定義の変数:これは11行目の/data/www/test.class.phpにあります

注意:11行目の/data/www/test.class.phpで非オブジェクトのプロパティを取得しようとしています

何もしない


エラー報告レベルを変更しても、PHP5.4では警告と「何もしない」が表示されます。取引が何であるかわからない、私は完全に困惑している。どんな助けでも大歓迎です!

4

1 に答える 1

0

MacOSX上のPHP5.4.4の別のインストールでこれを試しましたが、正常に機能しました。PHPをAndroidに移植したときに問題が発生したと考えているため、そのプロセスを再検討する必要があります。将来的には、SOに投稿する前に、より多くの構成を確実にテストする予定です。

みんな、ありがとう。

于 2012-08-04T05:34:38.120 に答える