PHPでメソッドをカスタマイズする方法

藏色散人
リリース: 2023-03-04 10:18:02
オリジナル
2745 人が閲覧しました

PHP では、[function foo($arg_1, $arg_2, /* ..., */ $arg_n){echo "Example function.\n";return $ の形式で定義できます。 retval;}] メソッド。

PHPでメソッドをカスタマイズする方法

推奨: 「PHP ビデオ チュートリアル

ユーザー定義関数

関数は次の構文で定義できます。

例 #1 関数の目的を示す疑似コード

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Example function.\n";
    return $retval;
}
?>
ログイン後にコピー

有効な PHP コードはすべて Within に表示されます。関数だけでなく、他の関数やクラス定義も含まれます。

関数名には、PHP の他の識別子と同じ命名規則があります。有効な関数名は文字またはアンダースコアで始まり、その後に文字、数字、またはアンダースコアが続きます。正規表現 ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$ で表現できます。

ヒント

「ユーザー空間の命名ガイドライン」を参照してください。

次の 2 つの例で関数が条件付きで定義されている場合を除き、関数を呼び出す前に関数を定義する必要はありません。

関数が条件付きで定義されている場合は、関数を呼び出す前に定義する必要があります。

例 #2 条件付き関数

<?php
$makefoo = true;
/* 不能在此处调用foo()函数,
   因为它还不存在,但可以调用bar()函数。*/
bar();
if ($makefoo) {
  function foo()
  {
    echo "I don&#39;t exist until program execution reaches me.\n";
  }
}
/* 现在可以安全调用函数 foo()了,
   因为 $makefoo 值为真 */
if ($makefoo) foo();
function bar()
{
  echo "I exist immediately upon program start.\n";
}
?>
ログイン後にコピー

例 #3 関数内の関数

<?php
function foo()
{
  function bar()
  {
    echo "I don&#39;t exist until foo() is called.\n";
  }
}
/* 现在还不能调用bar()函数,因为它还不存在 */
foo();
/* 现在可以调用bar()函数了,因为foo()函数
   的执行使得bar()函数变为已定义的函数 */
bar();
?>
ログイン後にコピー

PHP のすべての関数とクラスはグローバル スコープを持ち、外部からの呼び出しで定義できます。機能とその逆。

PHP は関数のオーバーロードをサポートしていないため、宣言された関数の定義を解除したり再定義したりすることはできません。

注: A から Z までの ASCII 関数名では大文字と小文字が区別されませんが、関数を呼び出すときは、定義時と同じ形式を使用することをお勧めします。

PHP 関数は、可変数のパラメーターとデフォルトのパラメーターをサポートします。 func_num_args()、func_get_arg()、および func_get_args() を参照してください。

PHP では再帰関数を呼び出すことができます。

例 #4 再帰関数

<?php
function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}
?>
ログイン後にコピー

注: ただし、スタックが崩壊して現在のスクリプトが終了する可能性があるため、100 ~ 200 レベルを超える再帰的な関数/メソッド呼び出しは避けてください。無限再帰はプログラミング エラーとみなされる可能性があります。

以上がPHPでメソッドをカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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