ホームページ > バックエンド開発 > PHPチュートリアル > PHP関数の入門から上級までの学習ルート

PHP関数の入門から上級までの学習ルート

WBOY
リリース: 2023-06-15 22:34:01
オリジナル
1222 人が閲覧しました

PHP (ハイパーテキスト プリプロセッサ) は、Web 開発で広く使用されているサーバー側スクリプト言語です。動的なページ、Web サイト、アプリケーションを作成し、さまざまなデータベースをサポートし、学習と使用が簡単です。その中でも関数はPHP言語において重要な概念です。この記事では、PHP関数の基礎入門から応用までの学習ルートを紹介します。

  1. 関数の基本知識

関数は、いくつかのパラメーターを受け取り、いくつかの操作を実行し、結果を返す、カプセル化されたコードの一部です。例:

function add($a, $b) {
    return $a + $b;
}
ログイン後にコピー

この関数は 2 つのパラメータを受け取り、それらの合計を返します。上記の関数は他の場所で繰り返し呼び出すことができるため、コードの再利用性と保守性が向上します。ここでは、関数の基本的な知識をいくつか示します。

  • 関数定義: 関数を定義するには、function キーワードを使用します。関数名は、変数名の規則に準拠した一意の識別子である必要があります。関数パラメータは、関数名の後にカンマで区切って複数のパラメータを定義することもできます。
  • 関数呼び出し: 関数を呼び出すときは、パラメーターを関数に渡します。関数はこれらのパラメーターを使用して、いくつかの操作を実行し、結果を得ることができます。
  • 関数の戻り: 関数は、return ステートメントを使用して結果を返します。 return ステートメントに値が指定されていない場合は、null が返されます。各関数は最大 1 つの値を返すことができます。
  1. 一般的な関数の種類

PHP では、さまざまな種類の関数を使用できます。一般的に使用されるタイプをいくつか示します。

  • システム関数: PHP には、直接呼び出すことができるいくつかの組み込み関数があります。たとえば、echo() 関数はページにテキストを出力し、date() 関数は現在の日付と時刻を取得します。
  • カスタム関数: カスタム操作を実行する独自の関数を作成できます。たとえば、上記の add() 関数はカスタム関数です。
  • 匿名関数: クロージャとも呼ばれ、関数を動的に作成して変数に割り当てることができます。この関数には名前がありません。変数名を使用して呼び出すことができます。たとえば、$add = function($a, $b) { return $a $b; } これは、$add(1, 2) を使用して呼び出すことができます。
  • 変数関数: 変数関数とも呼ばれ、文字列または変数値によって呼び出される関数です。たとえば、$func_name = 'add'; $func_name(1,2) とすると、add() 関数が呼び出され、パラメーターが渡されます。
  1. 関数のパラメータの受け渡し

関数のパラメータは、値または参照によって渡すことができます。値によって渡される場合、関数は引数のコピーのみを使用し、元の値は変更されません。参照によって渡される場合、関数は実際の引数の場所を取得し、それらを変更します。

例:

function swap($a, $b) {
    $tmp = $a;
    $a = $b;
    $b = $tmp;
}

$x = 3;
$y = 5;
swap($x, $y);
echo $x; // 输出 3
echo $y; // 输出 5
ログイン後にコピー

この例では、関数 swap() は 2 つのパラメーター $a$b を受け取りますが、関数内ではコピーを使用するだけです。したがって、$x$y の値は交換されません。

値を交換したい場合は、参照渡しを使用できます。

function swap(&$a, &$b) {
    $tmp = $a;
    $a = $b;
    $b = $tmp;
}

$x = 3;
$y = 5;
swap($x, $y);
echo $x; // 输出 5
echo $y; // 输出 3
ログイン後にコピー

この例では、パラメータで & 記号を使用しています。パラメータは参照転送です。これで、$x$y の値が交換されました。

  1. 関数の変数スコープ

PHP の変数スコープには、グローバル変数とローカル変数が含まれます。グローバル変数はスクリプト全体で使用できますが、ローカル変数は関数内でのみ使用できます。

例:

$x = 10;

function test() {
    $y = 5;
    echo $x; // 会抛出一个 Notice 错误
    echo $y; // 输出 5
}

test();
echo $x; // 输出 10
ログイン後にコピー

この例では、関数 test() 内でローカル変数 $y を定義し、グローバル変数を試みます。 $x はコードの残りの部分で使用されます。ただし、$xtest() で定義されていないため、 Notice エラーがスローされます。

関数でグローバル変数を使用する場合は、global キーワードを使用できます:

$x = 10;

function test() {
    global $x;
    $y = 5;
    echo $x; // 输出 10
    echo $y; // 输出 5
}

test();
echo $x; // 输出 10
ログイン後にコピー

この例では、global key $x をグローバル変数としてマークし、関数 test() 内で使用します。

  1. 高度な関数の概念

PHP 関数の使用法を拡張できるいくつかの高度な関数の概念もあります。

  • 匿名関数 (すでに
  • クロージャ: クロージャは、それを囲んでいるスコープ内の変数にアクセスできる自己完結型関数です。これにより、実際の機能モジュールを作成できるようになります。例:
function add($x) {
    return function($y) use ($x) {
        return $x + $y;
    };
}

$add5 = add(5);
echo $add5(3); // 输出 8
echo $add5(4); // 输出 9
ログイン後にコピー

この例では、add() 関数を使用してクロージャを作成します。この関数は $x$ のみを返します。 yの合計。次に、$add5 = add(5) を使用して新しい関数を作成し、それを $add5 変数に割り当てます。さて、$add5() はクロージャです。パラメータ 34 をそれぞれ渡して 2 回呼び出し、各呼び出しの後に結果を出力します。

  • 回调函数:回调函数是一种通过函数指针调用的函数。这意味着可以将函数作为参数传递给其他函数,并在特定点调用它。回调函数非常有用,能够使代码更加灵活,因为它可以允许对代码的某些部分进行自定义。例如:
function process($data, $func) {
    foreach($data as $item) {
        $func($item);
    }
}

$print = function($x) { echo $x . "<br>"; };
$data = [1,2,3,4,5];
process($data, $print);
ログイン後にコピー

在这个例子中,我们使用了一个回调函数 $print,它接收一个参数并将其输出到屏幕上。然后我们使用 process() 函数,将 $print 函数作为参数传递,并将 $data 数组作为参数。在 process() 函数内部,我们使用 foreach() 循环遍历 $data 数组,并将每个元素传递给 $func 函数,这里就是 $print 函数。

  • 可变参数:可变参数,在PHP中称为“不定数量的参数”,是指一个函数可以接受任意数量的参数。使用可变参数时,可以将一个函数设计为可接受任意数量的参数,而无需知道有多少个参数或它们的名称。
function add(...$nums) {
    return array_sum($nums);
}

echo add(1, 2, 3, 4, 5, 6); // 输出 21
ログイン後にコピー

在这个例子中,我们定义一个 add() 函数,使用三个点号(...)作为前缀来指示它是一个可变参数函数。然后我们使用 array_sum() 函数对所有传递给函数的值进行求和。

  1. 总结

本文介绍了PHP函数基础知识、常用类型、参数传递、变量作用域和高级函数概念。如果您是初学者,请从基础入门开始,逐步深入研究和实践PHP函数的使用。如果您已经有经验,请继续学习高级概念,以提高您的编程技能。无论您是什么级别的PHP程序员,掌握PHP函数是非常重要的。它是编写高效、可维护和可读的代码的关键,也是打造优秀Web应用程序的必备技能。

以上がPHP関数の入門から上級までの学習ルートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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