代码在 PHP 4 中不起作用
我有一个 PHP 脚本,它在 PHP 5 中工作正常,但在 PHP 4 中不行。我做了一个小测试用例供您演示(免责声明:我知道下面的代码可以写得更好,但它实际上并不是一个使用的部分,而不是演示我正在谈论的内容的部分):
class Messenger {
var $messages = '';
function add($message) {
$this->messages .= "$message\n";
}
}
function add($m) {
if (! isset($GLOBALS['instance'])) $GLOBALS['instance'] = new Messenger();
call_user_func_array(array($GLOBALS['instance'], 'add'), array($m));
}
add("One");
add("Two");
add("Three");
var_dump($GLOBALS['instance']->messages);
在 PHP 5 下,messages 属性包含所有 3 条消息,在 PHP 4 下它是空的。为什么?
I have a PHP script which works fine in PHP 5, but not in PHP 4. I've made a small test case for you to demonstrate (disclaimer: I know that the below code could be written much better, but it's not an actually used piece, rather the one to demonstrate what I'm talking about):
class Messenger {
var $messages = '';
function add($message) {
$this->messages .= "$message\n";
}
}
function add($m) {
if (! isset($GLOBALS['instance'])) $GLOBALS['instance'] = new Messenger();
call_user_func_array(array($GLOBALS['instance'], 'add'), array($m));
}
add("One");
add("Two");
add("Three");
var_dump($GLOBALS['instance']->messages);
Under PHP 5 the messages
property contains all 3 messages, under PHP 4 it is empty. Why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 PHP 4 中,
$this
的工作方式似乎与 PHP 5 不同。示例: http://www.php.net /manual/en/keyword.class.php
In PHP 4,
$this
does not seems to be work the same way as PHP 5 does.example : http://www.php.net/manual/en/keyword.class.php