2010-12-18 107 views
0

我在創建一個PHP類中定義屬性時遇到了一些問題。PHP對象屬性聲明錯誤

<?php 
class news_parser { 
    public $var1 = Array(); 
    function contents($parser, $data) { 
     printf($data); 
    } 
    function start_tag($parser, $data, $attribs) { 
     printf($data); 
    } 
    function end_tag($parser, $data) { 
     printf($data); 
    } 
    function parse() { 
     if(!$file = fopen("http://services.digg.com/2.0/story.getTopNews?type=rss&topic=technology", "r")) 
      die("Error opening file"); 
     $data = fread($file, 80000); 

     $xml_parser = xml_parser_create(); 
     xml_set_element_handler($xml_parser, array($this, "start_tag"), array($this, "end_tag")); 
     xml_set_character_data_handler($xml_parser, array($this, "contents")); 
     if(!xml_parse($xml_parser, $data, feof($fh))) 
      die("Error on line " . xml_get_current_line_number($xml_parser)); 
     xml_parser_free($xml_parser); 
     fclose($fh); 
    } 
} 

$digg_parser = new news_parser(); 
$digg_parser->parse(); 
echo phpversion(); 

?> 

產生以下錯誤:

Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homepages/8/d335242830/htdocs/caseyflynn/php/display_formatted_RSS_feed.php on line 3 

至於我可以告訴我正確的語法。我的服務器運行PHP 4.5。有任何想法嗎?

回答

4

My server is running PHP 4.5

這是你的問題:PHP 4不知道public關鍵詞 - 伴隨着other OOP features堆。

由於@konforce說,在你展示的代碼,你可以簡單地切換到使用var關鍵字。但最好的事情是切換到PHP 5. PHP 4的時間真的結束了。

+0

您可以用'var'替換'public',但Pekka的建議仍然如此。 – Matthew 2010-12-18 01:49:08

+0

感謝大家,我通常使用PHP5,但是這是爲了一個班級,我的教授有一些奇怪的原因,在他的私人網絡服務器上堅持使用PHP4。 – 2010-12-18 01:50:52

+0

@Casey:他可能有一些過時的PHP代碼。 – Jonah 2010-12-18 02:06:49