当我在一个方法中捕获类时,我收到错误。当我打电话给另一个方法时,我得到了这样的错误。
请参阅下面的代码。我该如何解决这个问题呢。
class Java{
function anotherMethod(Php $phpAccess){
$phpAccess->framework();
$phpAccess->cms();
}
}
class Php{
public function framework()
{
echo "Laravel is a popular php framework. </br>";
}
public function cms()
{
echo "WordPress is popular php cms. </br>";
}
}
$php = new Php();
$java = new Java($php);
echo $java->anotherMethod();
但是当我在构造函数中捕获类时,它会给出正确的输出。请参阅下面的代码。
class Java{
function __construct(Php $phpAccess){
$phpAccess->framework();
$phpAccess->cms();
}
}
答案 0 :(得分:2)
您收到错误是因为您将PHP对象传递给Java构造函数,但PHP对象是anotherMethod的依赖项。按以下方式更改Java类以使其正常工作:
class Java
{
private $phpAccess;
public function __construct(Php $phpAccess)
{
$this->phpAccess = $phpAccess;
}
public function anotherMethod()
{
$this->phpAccess->framework();
$this->phpAccess->cms();
}
}
class Php
{
public function framework()
{
echo "Laravel is a popular php framework. </br>";
}
public function cms()
{
echo "WordPress is popular php cms. </br>";
}
}
$php = new Php();
$java = new Java($php);
$java->anotherMethod();
答案 1 :(得分:1)
在没有任何参数的情况下调用函数anotherMethod。在您的班级中,该方法定义为WITH paramater。所以你必须使用参数$ php
调用anotherMethodecho $java->anotherMethod($php);