関数 - PHP マニュアルのメモ

WBOY
リリース: 2016-08-08 09:29:19
オリジナル
773 人が閲覧しました

ユーザー定義関数

条件付きで定義されない限り、関数を呼び出す前に定義する必要はありません。

PHP のすべての関数とクラスにはグローバル スコープがあります。 PHP は関数のオーバーロードをサポートしておらず、宣言された関数を定義解除したり再定義したりすることはできません。

具体的に試してみたところ、私のコンピューター上の PHP 再帰スタックの最大深さは 100 であることがわかりました。

関数パラメータ

PHP は、値によるパラメーターの受け渡し (デフォルト)、参照によるパラメーターの受け渡し、およびデフォルトのパラメーターをサポートしています。可変長の引数リストもサポートされています。 PHP では、配列と特別な型 NULL をデフォルトのパラメーターとして使用できます。関数でパラメーター値を変更できるようにするには、パラメーターを参照によって渡す必要があります。

注意!デフォルト パラメータを使用する場合、デフォルト パラメータはデフォルト以外のパラメータの右側に配置する必要があります。そうしないと、関数は期待どおりに動作しません。

PHP は、ユーザー定義関数のパラメーター リストの可変数をサポートします。 PHP 5.6 以降では、... 構文の実装があり、このように記述できますが、適切な環境がないためテストできません。

リーリー

もちろん、パラメータリストの可変数はPHP 5.5などの下位バージョンでも使用できます。関数 func_num_args()func_get_arg()gunc_get_args() を通じてパラメータの数、特定のパラメータの内容、パラメータの配列を取得します。

リーリー

戻り値

関数は複数の値を返すことはできませんが、配列を返すことで同様の効果を得ることができます。

リーリー

関数から参照を返すには、関数を宣言するときと戻り値を変数に代入するときの両方で参照演算子を使用する必要があります&

リーリー

変数関数

PHP は可変個引数関数をサポートしています。つまり、変数名の後に括弧がある場合、PHP は変数の値と同じ名前の関数を探し、それを実行しようとします。変数関数はコールバック関数、関数テーブルなどを実装するために使用できますが、私はこれらを使用したことがありません。

静的メソッドを呼び出す場合、関数呼び出しは静的プロパティよりも優先されます。

内部機能

PHP には多くの標準関数と構造があり、一部の関数は特定の PHP 拡張モジュールを使用してコンパイルする必要があります。

関数に渡されたパラメータの型が実際の型と一致しない場合、関数の戻り値は未定義になります。この場合、通常、関数は NULL を返します。しかし、これは単なる慣例であり、必ずしもそうである必要はありません。

匿名関数

匿名関数はクロージャとも呼ばれ、名前を指定せずに関数を一時的に作成できます。コールバック関数の引数として最も一般的に使用される値。

マニュアルの最初のサンプル プログラムは正規表現に関連していますが、2 番目のサンプル プログラムは匿名関数変数の代入です。無名関数変数の定義文の最後にはセミコロンを追加する必要があることに注意してください。

リーリー

3番目のサンプルプログラムは、親スコープからの変数の継承について理解できず、残念です。クロージャとスコープに関する 4 番目のサンプル プログラムは、実際の実践と組み合わされています。詳しく見てみましょう。

一定数の商品を追加して合計金額を計算する機能を実装した基本的なショッピングカートクラスです。クロージャーはコールバック関数として使用されます。

リーリー

注意!匿名関数ステートメントの最後にセミコロンを残さないように注意してください。

(全文終わり)

上記は、関連する内容を含む機能 - PHP マニュアル ノートの紹介です。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!