我不理解php中的课程概念。我错了。
我查看了一个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?
请启发我。
我的问题是:我们可以为一个类的未声明属性赋值吗?
答案 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);