PHP:调用另一个类的方法
我仍在学习OOP,所以这甚至可能是不可能的(尽管如果是这样,我会感到惊讶),我需要一些帮助来调用另一个类方法。
例如,在 有此方法:ClassA I
function getName()
{
return $this->name;
}
现在从(不同的文件,但在同一个目录中),我想调用 's ,我该怎么做?我试图只是做一个,但这不起作用。ClassB
ClassA
getName()
include()
谢谢!
我仍在学习OOP,所以这甚至可能是不可能的(尽管如果是这样,我会感到惊讶),我需要一些帮助来调用另一个类方法。
例如,在 有此方法:ClassA I
function getName()
{
return $this->name;
}
现在从(不同的文件,但在同一个目录中),我想调用 's ,我该怎么做?我试图只是做一个,但这不起作用。ClassB
ClassA
getName()
include()
谢谢!
//file1.php
<?php
class ClassA
{
private $name = 'John';
function getName()
{
return $this->name;
}
}
?>
//file2.php
<?php
include ("file1.php");
class ClassB
{
function __construct()
{
}
function callA()
{
$classA = new ClassA();
$name = $classA->getName();
echo $name; //Prints John
}
}
$classb = new ClassB();
$classb->callA();
?>
如果它们是单独的类,则可以执行如下操作:
class A
{
private $name;
public function __construct()
{
$this->name = 'Some Name';
}
public function getName()
{
return $this->name;
}
}
class B
{
private $a;
public function __construct(A $a)
{
$this->a = $a;
}
function getNameOfA()
{
return $this->a->getName();
}
}
$a = new A();
$b = new B($a);
$b->getNameOfA();
我在此示例中所做的是首先创建该类的新实例。之后,我创建了一个类的新实例,我将实例传递给该实例到构造函数中。现在可以使用 访问类的所有公共成员。A
B
A
B
A
$this->a
另请注意,我不会在类内实例化类,因为这意味着我将这两个类紧密耦合。这使得很难:A
B
B
A