PHP関数の基本構文 カスタム関数
PHP は強力な関数を提供しますが、プログラマーが必要に応じて関数を自分で作成できるわけではありません。このセクションでは、関数の作成方法を学び始めます。
実際の開発プロセスでは、繰り返し使用する必要のある関数が多数必要になりますが、繰り返し使用する必要がある関数は、可能な限り関数(関数)として定義することができます。使用するときは名前を叫ぶだけです。
次に、カスタム関数の文法規定を学習しましょう。 文法規定は次のとおりです。
function 函数名([参数名1[=值1], 参数名2[=值2], 参数名n[=值n]])
{
函数中的功能体
[return 返回值]
}上記の文法規定には次の特徴が見つかり、次のような不特定の言語が生成されます。
1. 関数は関数
で始まります。2. 関数の後にスペースが続き、スペースの後に関数名が続きます
3. 関数名と変数の命名規則は基本的に同じですが、違いは次のとおりです: 関数名では大文字と小文字が区別されません。いわゆるパラメータは実際には変数です。 5. 関数名の後に括弧が続き、パラメータはすべて [] (角括弧) で囲まれます。これは、パラメータが入力できるかどうかを意味します。 6. パラメータがある場合、パラメータの後に等号 (=) を続けることができ、等号の後にデフォルト値が続きます。パラメーター値も [] (角括弧) で囲まれており、オプションを表します
7. 関数の後のパラメーター変数の主な機能は、関数の外にある変数値を関数本体に渡すことです。関数本体内の変数と関数本体外の変数は通常、2 つの異なる変数です。
8. 関数内の特定の関数 (関数本体) は中括弧で囲まれています。これは、これが関数の関数範囲であることを意味します
9. 関数は戻り値を持つことも、戻り値を持たないこともあり、[ で囲まれます) ] (角括弧) 上にある場合は、オプションであることを意味します。
10. Return の後にスペースがあり、Return の後にスペースが続く場合、Return の後のコードは実行されません。
11. 関数の実行には順序関係がなく、定義の前に呼び出すことができます
12. 関数を 2 回定義することはできません。つまり、関数をオーバーロードすることはできません
覚えておいてください: さらに記述する必要もあります実験するためのコードです!
これらの点は実験を通じて少しずつ証明していきます。 1. 関数はどこに呼び出しても、あなたに従います
<?php
function php_cn(){
echo '我是一条狗';
}
php_cn();
php_cn();
php_cn();
?>php_cn。この関数は次の 3 つの段落を表示します。
2 関数名
には、文字、数字、アンダースコアの組み合わせのみを使用できます。変数名の先頭に数字を入れることはできません。<?php
function 1demo(){
}
?>上記のコードはエラーを報告します。関数の名前と変数の名前付け3. 関数名と変数の名前付け規則は同じですが、違いは、関数名では大文字と小文字が区別されないことです
<?php
function Demo(){
echo '如果是写代码的男人,我们需要更加承担来自家庭的责任<br />';
}
demo();
Demo();
DEMO();
?>上記のコードを実行すると、次の 3 行が表示されることがわかります。コードを書いているのが男性である場合、家族はもっと責任を取る必要があります
。
つまり、関数名は呼び出されるときに大文字と小文字が区別されません。関数は、その名前を繰り返し呼び出し、繰り返し実行できます。再利用の特性も反映されています。
4. 関数本体のパラメータが定義されていてパラメータが渡されていない場合、コードはエラーを報告します
<?php
//定义函数名为test,必须要传入一个参数
function test($hello){
}
test();
?>自分で段落を書いて試してみてください。エラーが報告されますか?
5. 関数の後のパラメータにデフォルト値がある場合、パラメータを入力する必要はなく、コードはエラーを報告しません
<?php
function test( $arg = 10){
echo $arg;
}
test();
test(88);
?>エラーはありませんか?そして10と表示されて出てきました。
パラメータが渡されると、それらは関数に取り込まれることに注意してください。関数がパラメータを渡さない場合は、パラメータの後のデフォルト値が使用されます。
6. 関数の後に複数のパラメータを記述することができます
<?php
function test( $a , $b = 20 , $c = 30){
echo $a + $b + $c;
}
test( 1 , 2 , 3 );
?>上記のコードを自分で記述してください。複数のパラメータを渡しましたか?
7. 関数の後にデフォルト値のあるパラメータとデフォルト値のないパラメータがある場合、通常はデフォルト値のないパラメータが前に書かれます
前の3と4の実験では、デフォルト値がこのパラメータを表すことがわかりました。値を渡す必要はありません。デフォルト値がない場合、コードはエラーを報告します。つまり、デフォルト値のないパラメータを渡す必要があります。次の例を見てみましょう:
<?php
function test( $a = 20 , $b = 30 , $c ){
echo $a + $b + $c;
}
//重点:重点看这一行执行一下
test( , , 8 );
?> 上記の例を通じて、上記のコードの実行時に別のエラーが報告されたことがわかりました。つまり、上記の構文は機能しません。
上記の構文で期待しているのは、パラメーター $a とパラメーター $b の値を渡さないことです。パラメータ $c を渡す必要があります。ここでは 8 を渡しました。しかし、PHP の文法規則により、これを書くことはできません。したがって、記述方法を変更することで同じ効果を得ることができます:
<?php
function test( $c , $a = 20 , $b = 30){
echo $a + $b + $c;
}
//重点:重点看这一行执行一下
test( 8 );
?>上記の実験例を通して、パラメーター $c を渡しても、コードがエラーを報告しないことがわかりましたか。パラメータ $a = 20 およびパラメータ $b = 30 もコード $a + $b + $c に組み込まれます。
8. 関数本体内の変数と関数外の変数の間には関係がない
<?php
//定义变量$hello的值为10
$hello = 10;
//函数后的参数(形式上的参数,参数)处写上变量名为$hello
function demo( $hello ){
//形参带入了函数体内,函数体内变量$hello 改为了 250
$hello = 250;
//输入2个250相加的结果
echo $hello + $hello;
}
//将函数体外的变量$hello,传入变量的参数处(实际传入的参数,实参),显示出的结果为500
demo($hello);
//此处$hello的值输出,依然为10
echo $hello;
?>上記の例を通して、仮パラメータと実パラメータの間に変化点の関係がないことがわかりました。関数本体で渡される仮パラメータがどのように変更されても、実際のパラメータ $hello の実際の結果には影響しません。
9. 関数本体にreturnがあると、return以降のコードは実行されません
<?php
function demo(){
echo 111;
return;
echo 222;
}
demo();
?>お気づきですか? ——111のみ出力されます。
10. returnは関数本体の値を関数本体から取り出すことができます
<?php
//定义一条函数狗
function php_cn(){
$foo = 5;
$bar = 6;
$result = $foo + $bar;
//将$result的结果进行返回
return $result;
}
//调用php_cn()这个函数,$foo和$bar相加的$result就会返回回来给到变量$piao
$piao = php_cn();
//输出$piao的结果,果真为11
echo $piao;
?>11. 関数の実行には順序関係はありません。定義前の位置
<?php
demo();
function demo(){
$str = '爸爸妈妈年龄越来越大';
$str .= '大多数的孩子都是独生子女,更加应该负起责任';
echo $str;
}
demo();
?>上記により、この例では、関数が定義される前でも後でも呼び出せることが分かりました。つまり、関数はどこからでも呼び出すことができます。
11. 関数はオーバーロードできません
<?php
function demo(){
}
function demo(){
}
//试试会报错吗?
?>上記の例でエラーが報告されたことがわかりました。つまり、同じ名前の関数を2回定義することはできず、そうでない場合はエラーが報告されます
代入:
1. 2 層ループを定義し、1 行おきに色を変更します
2. このフォームは必須です。デフォルト値は 10 と 10 で、色の 1 つはデフォルト パラメータで、もう 1 つはデフォルト パラメータがありません
3. テーブルの文字列を返します


