国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php函數(shù)基本語法之自訂函數(shù)

PHP提供了功能強大的函數(shù),但這遠遠滿足不了需要,程式設計師可以根據(jù)需要自己建立函數(shù)。本節(jié)就開始學習建立函數(shù)的方法。

我們在實際開發(fā)過程當中需要有很多功能都需要重複使用到,而這些反覆需要使用到的功能,我們能定義成功能(函數(shù)),就盡可能定義成功能(函數(shù))。使用的時候,吼一下它的名字即可。

那我們來學一下自訂函數(shù)的語法規(guī)定,語法規(guī)定如下:

function 函數(shù)名([參數(shù)名1[=值1], 參數(shù)名2[=值2], 參數(shù)名n[=值n]])
{
       函數(shù)中的功能體
    [return 返回值]
}

上面的語法規(guī)定中發(fā)現(xiàn)瞭如下特點,產(chǎn)生如下語未能規(guī)定:

????1.函數(shù)以function開始

????2.function後面接空格,空格後接函數(shù)名稱

????3.函數(shù)名稱與變數(shù)命名規(guī)則基本上一樣,但不同的是:函數(shù)名稱不區(qū)分大小寫

????4.所謂參數(shù)其實就是變數(shù)

????5.函數(shù)名後接括號,括號內(nèi)接參數(shù),參數(shù)全都有[](中括號))所有這些都有起來了,代表參數(shù)可填可不填

????6.如果有參數(shù)的話,參數(shù)後可以接(=)等號,等號接預設值。參數(shù)值也是用[](中括號)括起來的,代表選填

????7.函數(shù)後的參數(shù)變量,主要功能是將函數(shù)體外的變量值,傳入函數(shù)體內(nèi)來使用,函數(shù)體的變數(shù)和函數(shù)體外的變數(shù)通常是兩個不? ? ? ? 同的變數(shù)。

????8.函數(shù)中的特定功能(功能體)用大括號括起來,代表這是一個函數(shù)的功能區(qū)間

????9.函數(shù)可以有回傳值也可以沒有回傳值,用[](中括號)括起來的,代表選填。

????10.return後接空格,空格後接回傳值,若有return,return後的程式碼皆不執(zhí)行。

????11.函數(shù)的執(zhí)行上沒有順序關係,定義處之前的位置可以呼叫

????12.函數(shù)不能定義兩次,即函數(shù)不能被重載

#記得:你也要多寫程式碼來進行實驗!

我們可以用實驗來一點一點證明這些觀點。

1. 函數(shù)是狗,哪裡呼叫哪裡哪,它就跟著你走

<?php

function php_cn(){

   echo '我是一條狗';
}

php_cn();
php_cn();
php_cn();
?>

php_cn這個函數(shù),是不是顯示出來了三段:我是一隻狗?

2函數(shù)名稱只能是字母,數(shù)字,底線的組合,且之間不能包含空格,數(shù)字不能放在變數(shù)名稱首位。

<?php
function 1demo(){
}
?>

以上程式碼會報錯誤。函數(shù)命名與變數(shù)命名

3. 函數(shù)名稱與變數(shù)命名規(guī)則一樣,但不同的是:函數(shù)名稱不區(qū)分大小寫

<?php

function Demo(){

   echo '如果是寫代碼的男人,我們需要更加承擔來自家庭的責任<br />';
}

demo();
Demo();
DEMO();

?>

透過上面的程式碼會發(fā)現(xiàn),會顯示出來三行:如果是寫程式碼的男我人我們需要更承擔來自家庭的責任
。
也就是函數(shù)名稱在呼叫的時候不區(qū)分大小寫。函數(shù)可以重複叫它的名字,可以重複執(zhí)行。也體現(xiàn)了重用的特質。

4. 函數(shù)體的參數(shù)若是定義了,未傳參數(shù),程式碼會報錯

<?php

//定義函數(shù)名為test,必須要傳入一個參數(shù)
function test($hello){


}

test();
?>

你也自己寫一段出來試試,會不會報錯?

5. 函數(shù)後的參數(shù)如果有預設值,參數(shù)可以不填,程式碼也不會報錯

<?php
function test( $arg = 10){

       echo $arg;

}

test();

test(88);

?>

是不是沒有報錯呀?並且顯示了 10和出來了。
說明,參數(shù)如果傳了,參數(shù)會帶入函數(shù)中。如果函數(shù)沒有傳參數(shù),會用參數(shù)後的預設值。

6. 函數(shù)後的參數(shù)可以寫多個

<?php
function test( $a , $b = 20 , $c = 30){

       echo $a + $b + $c;

}

test( 1 , 2 , 3 );
?>

自己寫寫上面的程式碼,我們是不是傳入了多個參數(shù)?

7.函數(shù)後面如果有預設值和無預設值的參數(shù),通常把無預設值的參數(shù)寫在最前面

之前的第3和第4個實驗我們發(fā)現(xiàn):預設值是代表這個參數(shù)可以不用傳值進去。而沒有預設值的話,程式碼會報錯,也就是無預設值的參數(shù)是必傳的。我們來看看下面的範例:

<?php
function test( $a = 20 , $b = 30 , $c ){

       echo $a + $b + $c;

}

//重點:重點看這一行執(zhí)行一下
test(  ,  , 8 );
?>

透過上例發(fā)現(xiàn)執(zhí)行上面的程式碼又報錯了。也就是上面的文法是不行的。
上面的語法我們希望的是,參數(shù)$a和參數(shù)$b我們不會傳入任何值。參數(shù)$c是必須要傳進去的,我們傳了8??墒荘HP的文法規(guī)定中不準許我們這麼寫。因此,我們換一種寫法,也能達到一樣的效果:

<?php
function test( $c , $a = 20 , $b = 30){

       echo $a + $b + $c;

}

//重點:重點看這一行執(zhí)行一下
test( 8 );
?>

透過上例實驗大家是不是發(fā)現(xiàn),參數(shù)$c我傳了,程式碼還沒報錯。而參數(shù)$a = 20 ,參數(shù) $b = 30 一樣帶入了代碼 $a + $b + $c 了。

8. 函數(shù)體的變數(shù)與函數(shù)體外的變數(shù)沒有關係

<?php
//定義變量$hello的值為10
$hello = 10;


//函數(shù)后的參數(shù)(形式上的參數(shù),參數(shù))處寫上變量名為$hello
function demo( $hello ){

   //形參帶入了函數(shù)體內(nèi),函數(shù)體內(nèi)變量$hello 改為了 250
   $hello = 250;

   //輸入2個250相加的結果
   echo $hello + $hello;

}


//將函數(shù)體外的變量$hello,傳入變量的參數(shù)處(實際傳入的參數(shù),實參),顯示出的結果為500
demo($hello);

//此處$hello的值輸出,依然為10
echo $hello;
?>

透過上例發(fā)現(xiàn):形參、與實參沒有變點關係。而函數(shù)體內(nèi)的傳進去的形參,再怎麼變化,都不會影響實參$hello的實際結果。

9. 函數(shù)體內(nèi)若有return,return 後的程式碼不執(zhí)行

<?php

function demo(){

   echo 111;

   return;

   echo 222;

}

demo();
?>

發(fā)現(xiàn)沒? ——只輸出了111。

10. 函數(shù)執(zhí)行完後,return 可把函數(shù)體內(nèi)的值,帶帶函數(shù)體外

<?php

//定義一條函數(shù)狗
function php_cn(){

   $foo = 5;

   $bar = 6;

   $result =  $foo + $bar;
   //將$result的結果進行返回
   return $result;

}

//調用php_cn()這個函數(shù),$foo和$bar相加的$result就會返回回來給到變量$piao
$piao = php_cn();

//輸出$piao的結果,果真為11
echo $piao;

?>

11. 函數(shù)的執(zhí)行沒有順序關係,可以在定義處之前的位置呼叫

<?php

demo();
function demo(){

   $str = '爸爸媽媽年齡越來越大';
   $str .= '大多數(shù)的孩子都是獨生子女,更加應該負起責任';

   echo $str;
}

demo();
?>

透過上例發(fā)現(xiàn),函數(shù)在定義之前還是在定義之後都可以呼叫。也就是函數(shù)可以任意位置呼叫。

11. 函數(shù)不能重載

<?php

function demo(){

}

function demo(){

}
//試試會報錯嗎?
?>

透過上例發(fā)現(xiàn),報錯了,也就是同名函數(shù)不能被定義兩次,否則報錯


作業(yè):

????1.定義一個雙層循環(huán),隔行變色的表格

????2.要求這個表格,預設值為10和10,顏色中有一個為預設參數(shù),一個沒有預設參數(shù)

????3.將表格的字串return 回去

#????

繼續(xù)學習
||
<?php //定義一條函數(shù)狗 function php_cn(){ $foo = 5; $bar = 6; $result = $foo + $bar; //將$result的結果進行返回 return $result; } //調用php_cn()這個函數(shù),$foo和$bar相加的$result就會返回回來給到變量$piao $piao = php_cn(); //輸出$piao的結果,果真為11 echo $piao; ?>