将值分配给未声明的属性

时间:2016-08-26 08:39:30

标签: php class

我不理解中的课程概念。我错了。

我查看了一个WordPress插件。定义了类,并且只创建了类的属性。

考虑这个例子

class a
{
    public function show(){
        echo "hello";   
        $this->something = "xyz" ;
        // What is this? How can "something" can be used here;
        // as it is not defined in the class?   
    }
}

然后在另一个文件中创建了该类的对象。

$obj = new a();
$obj->anothersomething = "abc"; // is it possible?

请启发我。

我的问题是:我们可以为一个类的未声明属性赋值吗?

2 个答案:

答案 0 :(得分:2)

默认班级可见性为public 但是,最好使用它的可见性明确声明类方法。

class Foo
{
    public function a() {}
    protected function b() {}
    private function c() {}
}

正如@SougataBose所提到的,我建议您浏览PHP OOP course

编辑:

谈到物业 - 是的。可以动态创建它们。同样,作为一种好的做法,建议在类体中声明所有属性。

答案 1 :(得分:-1)

在这种情况下,它不是一个函数,而是一个公共类方法。通常你需要使用public / protected / private关键字来定义它,但是当被跳过时,默认情况下它只是公共的。然后在另一个文件中,您创建此类的实例并调用公共方法show(),然后可以直接使用类实例属性。或者您可以使用$obj->anothersomething = "xxx"从外部分配这些属性,这不是一个好习惯。所有作业都应该通过像$obj->setProperty($value);

这样的setter方法完成