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();
前方宣言された関数を持っていない/必要としない理由の 1 つは、php がスクリプトをコンパイルする前に毎回解析することです。ファイルの実行を開始する前に関数を見つけるので、それらがそこにあることがわかります。実際、関数を呼び出す前に関数を定義しなければならなかったとしても、どれだけ遡る必要があるかは思い出せません。私は9年間PHPをやっていますが、それは必要ありません:-)