0

我遇到了在 PHP 5.3 中运行良好的代码问题,现在在 PHP 5.4 中被破坏了。代码工作的原始环境是:

Ubuntu 11.04 Lighttpd 1.4.29 PHP 5.3

Mac OSX 10.7.4 阿帕奇 2.0.63 PHP 5.3

新环境是:

安卓 4.0.4 Lighttpd 1.4.29 PHP 5.4.4

我将问题代码归结为两个简单的文件:

[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"; }
    }

}

[调试.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 中的 this

注意:尝试在第 11 行的 /data/www/test.class.php 中获取非对象的属性

什么都不做


即使我更改了错误报告级别,我仍然会在 PHP 5.4 中收到警告和“什么都不做”。不知道交易是什么,我完全被难住了。任何帮助表示赞赏!

4

1 回答 1

0

在 Mac OSX 上的另一个 PHP 5.4.4 安装上进行了尝试,它运行良好。我们认为当我们将 PHP 移植到 Android 时出现了问题,所以我们必须重新审视这个过程。将来肯定会在发布到 SO 之前测试更多配置。

感谢大家。

于 2012-08-04T05:34:38.120 回答