我有一个类如下所示:
<?php
class theGodFather {
public function do() {
echo "the movie is nice";
}
}
$obj = new theGodFather;
echo $theGodFather->do;
运行时,我得到了错误:语法错误,意外的T_DO,在/Applications/XAMPP/examplepfiles/htdocs/test/classes.php的第3行中应为T_STRING
我可能做错了什么?
不能将关键字用作函数/类/方法和常量的名称,do
就是其中之一。但是,您可以将它们用作变量名。
"do"是一个关键字(可以在do-while循环中使用)。此外,您正在回显一个函数,该函数不返回任何内容,但回显其中的某些内容。
将"do"函数重命名为"echoFunction"或您选择的任何名称,然后更改此项:
$obj = new theGodFather;
echo $theGodFather->do;
至:
$obj = new theGodFather;
$obj->echoFunction();
之所以不调用$theGodfath->echoFunction,是因为Godfather是一个类定义,而$obj是该类的实际实例。您可以在PHP中拥有静态方法,无需创建新实例即可调用这些方法。
您在类中使用do函数"do"是php的关键字,不能在函数或类中使用关键字
试试这个
class theGodFather
{
// property declaration
public $var = 'a default value';
// method declaration
public function displayVar() {
echo 'a default value';
}
}
$obj = new theGodFather();
//print_r($obj);
echo $obj->displayVar();
do
是一个关键字,因此解释器会非常非常困惑(选择一个不同的函数名称,它就可以工作了!