ホームページ >バックエンド開発 >PHPチュートリアル >PHP をマスターする必要がある入門知識

PHP をマスターする必要がある入門知識

零下一度
零下一度オリジナル
2017-06-23 13:50:301213ブラウズ

PHP基礎入門(3)---関数

今日はPHPの関数の基本を共有します。最初の 2 章を理解していれば、誰もが PHP について一定の基本を理解しているはずです。最初の 2 章を復習したい友達は、「PHP 基礎入門 (1)」と PHP 基礎入門 (2)」をクリックしてください ページにジャンプしますPHP の基本を復習します。

***この章のキーワード: PHP の変数のスコープ; include&require; PHP 閉鎖

それでは、PHP関数の基本を見ていきましょう↓↓↓

A関数の宣言と使い方

1 , 関数名は識別子の 1 つであり、使用できるのは数字、文字、アンダースコアのみであり、数字で始めることはできません。
関数名の命名は、「リトル キャメル ケース ルール」に準拠する必要があります: myNameIsXiaoxi my_name_is_xiaoxi
関数名は大文字と小文字が区別されません。 func() func() FUNC() が使用可能です
関数名は既存の関数名やシステム関数名と同じにすることはできません。

2. function_exists("func1"); 関数が宣言されているかどうかを検出するために使用されます。
注: 渡される関数名は文字列形式である必要があります。戻り値は true/false です。

II PHPにおける変数のスコープ

1. ローカル変数: 関数内で宣言された変数はローカル変数と呼ばれます。関数内でのみ使用できます。関数の外で使用するには、関数内で return キーワードを使用する必要があります。
2. グローバル変数: 宣言された関数の外にある変数はグローバル変数と呼ばれます。
3. 関数では変数が使用され、デフォルトでは内部ローカル変数が使用されます。関数でグローバル変数を使用する必要がある場合は、グローバル変数を使用する前に、global キーワードを使用して関数へのグローバル変数を参照する必要があります。

関数内の変数名がグローバル変数で繰り返されている場合、グローバル ステートメントの上では関数ローカル変数、グローバル ステートメントの下ではシステム グローバル変数になります。

4. $GLOBALS[] グローバル配列:
$GLOBALS[] 配列は、関数の内部または外部で宣言されたかどうかに関係なく、配列に直接値を追加できます。 、どこでも直接使用できます。
$GLOBALS["a"] = 10; ---> echo $GLOBALS["a"];// 関数でグローバル変数を使用する別の方法もあります。関数にパラメーターを渡す場合、関数内でグローバル変数を使用できます

ただし、渡されるパラメーターは関数のローカル変数であり、内部で変更された場合、外部では変更されません。

渡されたパラメータがアドレス関数 func($a1,&$a2) でない限り、 // a1 が関数の内部で変更された場合、グローバル a1 は変更されません。 a2 が関数の内部で変更された場合、グローバル a2 が変更されます。

関数の仮パラメータにアドレス記号が含まれている場合、関数を呼び出すとき、実際のパラメータはリテラルではなく変数である必要があります。

たとえば、上記の例では、 func($a1,$a2); √ func($a1,2); ×


6. require と include を使用してもスコープには影響しません。

3つの静的変数

1. 静的変数は、static キーワードを使用して宣言されます。 static $num = 10;
2. 静的変数の特徴:
>>>静的変数は、関数が初めてロードされるときに宣言されます。
>>> 静的変数は、関数の使用後すぐには解放されません。静的変数は、スクリプト実行プロセス全体で 1 回だけ宣言されます。
>>>同じ関数を複数回呼び出すと、同じ静的変数が共有されます。

4 関数のパラメータの受け渡し

1 PHP では、パラメータの受け渡しに関しては、実際のパラメータのリストは仮パラメータ
2 よりも多くしかありません。 . 従来のパラメータの受け渡し: function func($a){} func($a);
3. パラメータの参照渡し: function func(&$a){} func($a); &,関数で変数を内部的に変更し、関数の外で同期的に変更します
②仮パラメータは参照パラメータであり、実際のパラメータは変数のみであり、リテラルではありません func(10); ×
4. ,$ a = 10) {} func (20);
// $ は渡されず、デフォルトは 10 です。$ b を渡す必要があります。そうでない場合、使用中にエラーが定義されません。
パラメータにデフォルトパラメータとデフォルト以外のパラメータの両方がある場合、デフォルトパラメータリスト
は非デフォルトパラメータリストの後になければなりません。つまり、呼び出し時にデフォルト以外のリストが最初に割り当てられる必要があります。
5. 変数パラメーターのリスト: PHP は仮パラメーターよりも多くの実パラメーターを持つことができるため、N 個の実パラメーターを渡し、PHP 組み込み関数を通じて対応するパラメーターを取得できます。

var_dump(func_get_args()); //すべてのパラメータリスト(配列)を取得します
var_dump(func_num_args()) //返されるパラメータの総数は count(func_get_args()); var_dump (func_get_arg(0));//添字

変数関数

1に従って各パラメータを返します。関数名を文字列に変換した後、Give aを割り当てます。変数。この変数は変数関数と呼ばれるもので、()を追加して関数の内容を呼び出すことができます。 関数 func(){}--->$fun = "func";--->$func();

6つのコールバック関数1. 変数関数を使用してコールバック関数をカスタマイズします

function func($func){$func();}--->function f() { }--->func("f");
2. call_user_func_array と call_user_func を使用してコールバック関数をカスタマイズします

両方の関数の最初のパラメーターは、現在のコールバックの実行を示します。 。
違いは、call_user_func_array() の 2 番目のパラメーターが配列であり、配列の各値がコールバック関数のパラメーター リストに割り当てられることです。これは、JS の apply() に相当します。
そして call_user_funcコールバックを割り当てることです。関数のパラメータリストが直接展開され、2番目から複数のパラメータに書き込まれます。これは、JS;
のcall()に相当します。例:call_user_func_array("func",array(1,2, 3));
--> func(1,2,3);
call_user_func("func",1,2,3);;

7つの

匿名関数変数関数のため、(func()/$func();)を呼び出す際に複数の呼び出し元が存在します

関数呼び出しがより均一になり、匿名関数が作成されました。 ! !
匿名関数を宣言する場合、関数本体の後のセミコロンは必須です。
匿名関数自体も変数であり、var_dump(); を使用してオブジェクト型として検出されます

デモコード:

<span style="font-family: 楷体; font-size: 14pt"><span style="color: #008080"> 1</span> <span style="color: #0000ff">function</span><span style="color: #000000"> func(){}</span><span style="color: #008080"> 2</span>    <span style="color: #800080">$fun</span> = "func"<span style="color: #000000">;</span><span style="color: #008080"> 3</span>    <span style="color: #800080">$fun</span><span style="color: #000000">();</span><span style="color: #008080"> 4</span> <span style="color: #000000">   func();</span><span style="color: #008080"> 5</span>    <span style="color: #008080"> 6</span> <span style="color: #800080">$func</span> = <span style="color: #0000ff">function</span><span style="color: #000000">(){</span><span style="color: #008080"> 7</span>        <span style="color: #0000ff">echo</span> "I am ZXX<br />"<span style="color: #000000">;</span><span style="color: #008080"> 8</span> <span style="color: #000000">};</span><span style="color: #008080"> 9</span> <span style="color: #800080">$func</span>(10<span style="color: #000000">);</span><span style="color: #008080">10</span> <span style="color: #008080">var_dump</span>(<span style="color: #800080">$func</span>);<br></span>

include&require

1、两者的作用,都是用于引入外部的PHP文件到当前文件中。

2、两者的区别:当引用文件错误时,include会产生警告,并不影响后续代码执行。
而require会产生致命错误,后续代码全部不再执行。

3、一般,当用于在文件最上方导入某些文件时,使用require导入,如果导入失败,则不再执行文件;
而如果是在某些分支条件中,导入执行某些操作,则一般使用include。一旦报错,不影响其他分支功能。

4、include_once和require_once表示:文件只能导入一次,如果多次调用此函数,则后面的语句会判断文件是否导入。
再决定是否导入新文件。
(检测文件是否导入时,只关心文件是否已经导入,并不关心是否以何种方式导入的)
include("test.txt");
require_once "test.txt";//由于include进来了,require不再导入。

5、include和require可以导入各种类型的文件。
相当于在当前文件copy了一份,但是copy过程中,PHP引擎会进行适当的编译,确保不会出错。

6、include和require是函数,也是指令!PHP对于很多常用函数会提供指令的写法。
eg:echo("11");//函数写法      echo"11";//指令写法


演示代码:

1 $num = true;2    if($num){3        include'functionDate.php';4            //require "functionDate.php";5            func1();6        func2();7        func3();8 }9 echo "haha";

 

PHP闭包

在PHP中,子函数无法直接访问父函数的局部变量,必须使用User关键词向下传递!!!

 1 $a = 12; 2 function func1(){ 3    $num = 10; 4    $num1 = 11; 5    $func2 = function() use($num,$num1){//使用use关键词传递父函数局部变量 6        global $a; 7        var_dump($a); 8        var_dump($num); 9        var_dump($num1);10    };11    return $func2;12 }13 $f = func1();14 $f($num);

 

 

 


 

 

以上がPHP をマスターする必要がある入門知識の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。