PHP不做前向函数声明(或“函数原型设计*”)。我们拥有的最接近的是对象接口和抽象方法。这些被称为“方法原型”或“方法声明”(声明而不是定义,它带有一个 c式语义)
Interface MyWidgetInterface {
function calculateThings(SomeClass $foo);
}
Abstract Class MyAbsClass {
public abstract function sayHello();
}
Class MyObj Extends MyAbsClass Implements MyWidgetInterface {
public function calculateThings(SomeClass $foo) {
}
public function sayHello() {
echo "Hi!\n";
}
}
$thing = new MyObj();
$thing->sayHello();
我们没有/不需要前向声明函数的原因之一是 php 在每次编译之前都会解析您的脚本。它会在开始执行文件之前找到您的函数,因此它知道它们在那里。事实上,我不记得你必须走多远才能在调用它之前定义函数。我做 PHP 已经 9 年了,从来不需要它 :-)