PHP-一个简单的类,可以';t运行


PHP - a simple class that can't run

我有一个类如下所示:

<?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是一个关键字,因此解释器会非常非常困惑(选择一个不同的函数名称,它就可以工作了!