如果我有两个类A,B和一个不扩展另一个,它们是分开的但是加载到脚本中我仍可以从B中引用A中的函数吗?
class A {
function one() {
echo "Class A";
}
}
class B {
function two() {
echo "Class B";
A::one();
}
}
$a new A;
$b = new B;
$b->two();
答案 0 :(得分:2)
从表面上看,是的,你可以做到这一点。但是,类one()
中的函数A
需要声明为static
,以使您的调用符号起作用。 (这使它成为类方法。)
代码中最后一行建议的另一种方法是让实例$b
调用实例$a
中的函数。这些函数称为实例方法,它们通常与对象进行交互。要访问这些方法,必须将它们声明为public
。声明为private
的方法只能由该类中的其他方法调用。
有几种方法可以在代码中调用实例方法。这些是您可以将$a
作为参数传递给函数的明显两个,或者您可以在方法中创建类A
的实例。
你到底想要实现什么目标?
答案 1 :(得分:1)
你可以像这样定义它。
class A {
public static function one() {
echo "Class A";
}
}
class B {
function two() {
echo "Class B";
A::one();
}
}
$a new A;
$b = new B;
$b->two();
答案 2 :(得分:0)
你可以将一个定义为静态,但为什么要做这样的事情?