2010-01-14 118 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

相關問題