类作品,未经声明变量?(Class works without declaring variable

2019-06-25 07:56发布

我学会了PHP的功能和程序语言。 现在尝试启动学习目标为导向,有一个重要的问题。

我的代码:

class car {

    function set_car($model) {
        $this->model = $model;
    }

    function check_model()
    {
        if($this->model == "Mercedes") echo "Good car";
    }

}

$mycar = new car;
$mycar->set_car("Mercedes");

echo $mycar->check_model();

为什么它没有$模型的申报工作?

var $model; 在开始的?

因为在PHP作品“自动申报”对任何变量? 我被困

Answer 1:

在PHP中的每个对象都可以得到会员W / O声明它们:

$mycar = new car;
$mycar->model = "Mercedes";
echo $mycar->check_model(); # Good car

这是PHP的默认行为。 这些都是公开的。 请参阅手册 。



Answer 2:

是的,如果它不存在,PHP声明它在飞行中为您服务。

这是更优雅无论如何定义,并与工作时扩展它的建议,因为你可以得到怪异的情况下,如果你的扩展是要去使用相同的varnames,也没有定义它私有,保护或公开。

更多信息: http://www.php.net/manual/en/language.oop5.visibility.php



Answer 3:

PHP类成员可以在任何时间被创建。 通过这种方式,将被视为公共变量。 要声明你需要声明它私有变量



Answer 4:

不,这是因为$模式是功能set_car的参数。 参数是不完全变量,但占位符(参考)到将调用函数(或类方法)时可以设置的变量或值。 例如,$模型需要调用set_car当值“奔驰”。



Answer 5:

是。 但这种方式的变量将被公开。 并声明类变量“VAR”已经过时 - 使用公共,保护或私有。



文章来源: Class works without declaring variables?
标签: php oop