Php 从另一个类调用一个类的变量的逻辑
我有几个问题: 因此,我有一个a类,如下所示:Php 从另一个类调用一个类的变量的逻辑,php,oop,logic,Php,Oop,Logic,我有几个问题: 因此,我有一个a类,如下所示: class A { protected $ _blah = 'blah'; public __construct { $this-> setPath ('test'); new B; } public setPath ($ path) { $ This -> _ blah = $ path; } } class B extends A { `echo $ this -> _ blah`; } 我的B级成绩如下:
class A {
protected $ _blah = 'blah';
public __construct {
$this-> setPath ('test');
new B;
}
public setPath ($ path) {
$ This -> _ blah = $ path;
}
}
class B extends A {
`echo $ this -> _ blah`;
}
我的B级成绩如下:
class A {
protected $ _blah = 'blah';
public __construct {
$this-> setPath ('test');
new B;
}
public setPath ($ path) {
$ This -> _ blah = $ path;
}
}
class B extends A {
`echo $ this -> _ blah`;
}
不,为什么输出在B类中是“blah”而不是“test”。
但是,在我的类B实例之前,我已将类A中的变量更改为“test”。根据您发布的代码,问题可能是因为您调用的是$This而不是$This 作为参考,请看一下PHP是如何处理的。因为变量是区分大小写的,所以实际上并没有在发布的代码中更改类的属性 下面是一个更好的例子:
class A
{
public $property = 'foo';
}
class B extends A
{
public function __construct()
{
$this->property = 'baz';
}
}
// 'foo';
echo A::$property;
$b = new B;
// 'baz'
echo $b->property;
不要在$后面加空格。它可以工作,但它不是通用样式,并且使您的代码更难让其他人阅读。在->周围的空格也不是通用样式。是否有理由在echo语句周围使用反勾号?