3

インターフェイスに関する PHP のドキュメント、具体的にはPHP: Object Interfaces - Manualを参照してください。次のコードは、実際の例として示されています。関数シグネチャの一部として宣言されているベアワード「Baz」が何であるかを誰かが説明できますか?

<?php
interface a
{
    public function foo();
}

interface b extends a
{
    public function baz(Baz $baz);
}

// This will work
class c implements b
{
    public function foo()
    {
    }

    public function baz(Baz $baz)
    {
    }
}
4

3 に答える 3

4

これはタイプヒンティングと呼ばれます。

このbaz()メソッドは、最初の引数$bazが 型のオブジェクトであることを想定していますBaz。オブジェクトの型は、それが構築されたクラス、またはそれが実装するインターフェースから取得されます。

于 2013-05-05T13:28:46.000 に答える
2

クラス c では、 functionは classbaz()であるオブジェクトであるパラメーターを必要としますBaz$bazは単なるオブジェクト名です。の関数内で使用されますbaz()

タイプヒンティングと呼ばれる

PHP 5 では、型ヒントが導入されました。関数は、パラメーターをオブジェクト (関数プロトタイプでクラスの名前を指定することにより)、インターフェース、配列 (PHP 5.1 以降)、または呼び出し可能 (PHP 5.4 以降) にすることができるようになりました。ただし、NULL がデフォルトのパラメータ値として使用されている場合は、以降の呼び出しの引数として許可されます。

クラスまたはインターフェイスが型ヒントとして指定されている場合、そのすべての子または実装も許可されます。

型ヒントは、int や string などのスカラー型では使用できません。特性も許可されていません。

于 2013-05-05T13:29:05.533 に答える
0

ドキュメントによると、それはタイプヒンティングと呼ばれます

Baz はクラスの名前です

したがって、baz メソッドは最初の引数 $baz がオブジェクトであることを期待します。

于 2013-05-05T13:27:18.477 に答える