2010-01-14 94 views
4

我刚刚意识到教授谷歌无法提供一个特定的页面,我可以找到,当static关键字添加到PHP 4.虽然遵循change log for php 4我可以看到,它是从版本4.0.6(或之前),但可用为什么它抛出:为什么PHP 4.4.9会抛出'解析错误:语法错误,意外的T_STATIC'?

Parse error: syntax error, unexpected T_STATIC, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in {FILE_PATH+LINE#}

一个简单的代码如下:

class myClass 
{ 
    static $_debug = true; 
} 

或类变量的这种分配在之前版本的PHP引入?

+1

您在PHP 4 changelog中看到的内容是对静态方法的引用,而不是'static'关键字。 – 2010-01-14 21:09:29

+0

对于那些怀疑静态是否特定于php5.x的用户,请参阅http://www.sfr-fresh.com/unix/www/php-4.4.9.tar.gz:a/php-4.4.9/ Zend/zend_language_parser.c – r0ash 2010-01-14 21:14:16

回答

13

我很确定静态类变量是PHP5的新增功能,所以不能在PHP4中使用。

以下是处理:PHP4可以使用函数中的static关键字,而不是类。的static唯一PHP4用法是这样的:

function howManyTimes() { 
    static $count = 0; 
    echo "Function has been called $count times."; 
    $count++; 
} 

该变量绑定到函数的范围永远。这就是PHP4如何解释static。您尝试使用的PHP5解释在您当前的PHP版本中不可用。抱歉!

+1

+1是的 - 公共/私人/受保护的和静态的只有PHP 5我相信。 – 2010-01-14 21:08:28

+1

的确如此。静态是PHP 5特有的。 – 2010-01-14 21:08:45

+0

http://www.sfr-fresh.com/unix/www/php-4.4.9.tar.gz:a/php-4.4.9/Zend/zend_language_parser.c – r0ash 2010-01-14 21:15:00

相关问题