在我正在创建的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。有什么想法吗?
答案 0 :(得分:4)
我的服务器正在运行PHP 4.5
这是你的问题:PHP 4不知道public
关键字 - 以及一堆other OOP features。
正如@konforce所说,在您展示的代码中,您只需切换到使用var
关键字即可。但最好的办法是切换到PHP 5. PHP 4的时间确实已经过去了。