我在创建动态对象时遇到了一个奇怪的问题。
在我使用 PHP 5.3.10-1ubuntu3.8 的本地服务器上,此代码运行良好:
$sObjName = 'field_xyz';
$o = $oVendor->{$sObjName};
print_r($o); //prints the object "$oVendor->field_xyz"
但是在我使用 PHP 5.3.13 的实时服务器上,相同的代码不起作用。我无法创建动态对象。
此代码在我的实时服务器上也不起作用:
$oVendor->$sObjName
否则,此代码适用于两台服务器:
$a = "Hello";
$$a = "World";
echo "$a ${$a}"; //prints out "Hello World"
我猜这是一个 php.ini 设置问题,但我真的不知道。
本地服务器与:实时服务器
当地的:
- 真实服务器
- PHP 5.3.10-1ubuntu3.8
- Suhosin 补丁 0.9.10
- Apache/2.2.22 (Ubuntu)
居住:
- 虚拟服务器
- PHP 5.3.13
- 没有Suhosin
- Apache/2.2.16 (Debian) PHP/5.3.13 mod_ssl/2.2.16 OpenSSL/0.9.8o