我是OOP的新手,我无法弄清楚为什么这不起作用。在类中实例化一个类是不行的。我已尝试使用方法中包含的文件并且它没有进行更改。
include('Activate.php');
class First {
function __construct() {
$this->activate();
}
private function activate() {
$go = new Activate('Approved');
}
}
$run = new First();
答案 0 :(得分:1)
您是说要访问$go
吗?因为,如果是这种情况,你需要改变它的范围。
如您所见,此方法中的$go
仅在activate()
内可用:
private function activate() {
$go = new Activate('Approved');
}
要使其可以从班级中的其他位置访问,您需要在activate()
之外声明它:
private $go = null;
您使用$go
致电$this
:
private function activate() {
$this->go = new Activate('Approved');
}
之后,如果你想从外面访问go,你需要创建包装器:
public function getGo(){
return $this->go;
}
希望这有帮助。另外,您可以阅读documentation about OOP in PHP。
答案 1 :(得分:0)
好的,我想出了我的问题。我的代码有两个错误。一个是我的方法被设置为私有,其次我在我$parms
发送给班级的错误。
include('Activate.php');
class First {
function __construct() {
$this->activate();
}
private function activate() {
$go = new Activate('Approved');
}
}
$run = new First();
答案 2 :(得分:0)
您可以在同一类中创建另一个公共函数的帮助下访问私有方法,并在公共方法或函数中调用私有函数。现在,您可以在 $ run 实例的帮助下调用私有函数。
例如:
级轿车{
function getting(){
echo ("Hello World");
}
private function getting2(){
echo ("Hello World Againg");
}
public function getting3(){
$this->getting2();
}
}
$ class_object =新车;
print($ class_object-> getting3());
您的输出屏幕如下图所示。