More specifically, an ampersand (&) prepended to an argument name means that the argument will be passed by reference (http://www.php.net/manual/en/language.references.pass.php).
各関数についてクイックリファレンスが記述されているので、 マニュアルを読み理解するノウハウは PHP の利用をより簡単にしてくれます。 例示やカットアンドペーストに頼るより、関数の定義(プロトタイプ)を 読む方法を覚えるべきです。やってみましょう:
注意: 前提条件: 型の基本的な理解
PHP は型についてルーズな言語ですが、重要な意味があるので、 型の基本を理解することは重要です。
関数の定義には戻り値が どんな型であるかが示されています。最初の例として、 strlen()の定義を考えてみましょう。
strlen ( string $string ) : int (PHP 4, PHP 5, PHP 7) strlen -- 文字列の長さを得る 説明 int strlen ( string $string ) 指定した文字列の長さを返します
Part | 説明 |
---|---|
strlen | 関数の名前 |
(PHP 4, PHP 5, PHP 7) | strlen()は PHP 4 と PHP 5、そして PHP 7 のすべてのバージョンで使用できる |
( string $string ) |
strlen() 関数の最初の(この場合は唯一の)引数が
string という名前であり
それは文字列である
|
int | 関数が戻す値の型。ここでは整数型 (文字列の長さが数字で数えられている) |
上の関数定義は、一般的な書き方では以下のようにも書けます。
function name ( parameter type parameter name ) : returned type
多くの関数は複数の引数を取ります。例えば in_array()。 このプロトタイプは次のようになります:
in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool
これは何を意味しているのでしょう? in_array() は
boolean の値を返します。
成功した場合は true
(needle
が
haystack
の中にある場合)、失敗した場合に false
を返します
(needle
が haystack
の中にない場合)。最初の引数は needle
と名づけられており、それは多くの違った
型をとることができます。その場合"mixed"と
呼ばれます。
needle
(我々が探しているもの)はスカラー値(文字列,整数,
又は float)でも、
配列でもかまいません。
haystack
(対象を探す配列)は二番目の引数です。
三番目のオプションの引数は strict
と名づけられています。全てのオプション引数はデフォルト値を持ちます。
デフォルト値が不明な場合、?
と表示されます。
strict
パラメータはデフォルトでは boolean の
false
であるとマニュアルに述べられています。機能の詳細については
各関数のマニュアルをご覧ください。
さらに、& (アンパサンド) 記号を関数のパラメータの前につけると、 そのパラメータをリファレンス渡しにすることができます。
preg_match ( string $pattern , string $subject , array &$matches = null, int $flags = 0 , int $offset = 0 ) : int|false
この例では、三番目のオプションのパラメータ &$matches
がリファレンス渡しとなります。
より複雑なバージョンとの関係を有する関数もあります。以下が html_entity_decode() の例です。
これは、この関数が PHP 4.3.0 以降のバージョンでのみ利用可能であることを意味します。
More specifically, an ampersand (&) prepended to an argument name means that the argument will be passed by reference (http://www.php.net/manual/en/language.references.pass.php).