php函數定義與函數&引用用法_PHP教程

來源:互聯網
上載者:User
/* 函數定義:
* 1.函數是一個被命名的
* 2.獨立的程式碼片段
* 3.函數執行特定任務
* 4.並可以給調用它的程式返回一個值
*
* 函數的優點:
* 1.提高程式的重用性
* 2.提高程式的可維護性
* 3.可以提高開發效率
* 4.提高軟體的可靠性
* 5.控製程序的複雜性
*
* 函數的聲明
* function 函數名(){
*
* }
*
* function 函數名(參數1,參數2,參數...)
* {
* 函數體
* }
*
* function 函數名()
* {
* 函數體;
* 傳回值;
* }
* function 函數名(參數列表...)
* {
* 函數體;
* 傳回值
* }
*
* 注意:
* 一、函數必須調用才能執行,可以在聲明之前調用,也可以在聲明之後調用
* 二、函數名命名和變數一樣,aaa bbb ccc aaaBbbCcc(第一單詞小寫,以後每個單字首大寫)
* 三、函數在聲明時不能重名
* 四、可以通過向函數傳遞參數,改變函數的行為
* 形參:在聲明函數時,聲明的參數,參數就是變數,多個參數用,分開
* 實參:調用函數時傳給形參數值(資料,也可以是變數)
* 五、如果沒有傳回值則稱為過程
* 六、通過使用return語句返回資料
* 七、函數執行到return語句就結束,不要再這個語句後寫代碼,也可以用return結束函數的執行
*
* 函數名的作用:
* 1.調用函數,開始執行函數
* 2.可以向函數中傳遞資料
* 3.函數名就是返回的值
*
*
*/
PHP 函數:
所有的函數都使用關鍵詞 "function()" 來開始
命名函數 - 函數的名稱應該提示出它的功能。函數名稱以字母或底線開頭。
添加 "{" - 開口的花括弧之後的部分是函數的代碼。
插入函數代碼
添加一個 "}" - 函數通過關閉花括弧來結束。


function writeMyName()
{
echo "David Yang";
}

writeMyName();
?>


//另一種輸出方式
現在,我們要在 PHP 指令碼中使用這個函數了:

<

html>


function writeMyName()
{
echo "David Yang";
}

echo "Hello world!
";
echo "My name is ";
writeMyName();
echo ".
That's right, ";
writeMyName();
echo " is my name.";
?>


以上代碼的輸出:

Hello world!
My name is David Yang.
That's right, David Yang is my name

函數引用&

function &c()
{

}

&c是什麼意思,有什麼好處與壞處 這個我也不明白

function c(&$var)
{
$GLOBALS['MALL'] =&$var;
}
&$var和普通傳值有什麼區別!
這個是引用的意思,可以在函數內部修改$var的值
舉個例子:
function c($var){
$var=$var+1;
}
$var=10;
c($var);
echo $var;這個輸出是10

如果函數改成function c(&$var){}


系統函數用法

PHP數組的交集array_intersect(),array_intersect_assoc(),array_inter_key()函數的小問題
  求兩個數組的交集問題可以使用array_intersect(),array_inersect_assoc,array_intersect_key來實現,其中array_intersect()函數是求兩個數的交集,返回一個交集共有元素的數組(只是數組值得比較)、array_intersect_assoc()函數是將索引值和值綁定,一起比較交集部分、array_intersect_key()函數是將兩個數組的索引值進行比較,返回索引值交集的數組。

  但實際應用中也遇到了一些小問題,正如下:

  執行個體:


"Red","green"=>"red4","Red15"=>"Red",7=>"Level","Width"=>"Red","azzzz1"=>"art","peak"=>158); $array1 = array("red"=>"Red2","greena"=>"red","Red15"=>"Red",7=>"Level","Width"=>"Red","azzzz"=>"art","peak"=>158); $num = array_intersect($array,$array1); print_r ($num); echo "
"; $num = array_intersect_assoc($array,$array1); print_r($num); echo "
"; $num = array_intersect_key($array,$array1); print_r ($num); ?>

  運行結果:


Array ( [red] => Red [Red15] => Red [7] => Level [Width] => Red [azzzz1] => art [peak] => 158 ) Array ( [Red15] => Red [7] => Level [Width] => Red [peak] => 158 ) Array ( [red] => Red [Red15] => Red [7] => Level [Width] => Red [peak] => 158 )
  總結:

    1.array_intersect()函數進行的比較只有數組值的比較,而且存在如”Red“和”Red2“比較時會返回"Red",反之則不會返回"Red2";

    2.array_intersect_assoc()函數是將數組的值與索引值一起比較,而且不會存在array_intersect的情況,適用於較嚴格的比較;

    3.array_intersect_key()函數適用於比較兩個數組索引值的交集,返回的並不只有索引值,而是索引值和對應的數組值


執行個體

$a = array(
'a' => '你好',
'b' => 'bb'
);
//header('Content-Type:application/json; charset=UTF-8');
echo json_encode($a)."n";
function replace_unicode_escape_sequence($match)
{
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}
echo preg_replace_callback('/u([0-9a-f]{4})/i','replace_unicode_escape_sequence',json_encode($a))."n";
?>


http://www.bkjia.com/PHPjc/445346.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445346.htmlTechArticlefunction writeMyName() { echo David Yang; } writeMyName(); ? //另一種輸出方式 現在,我們要在 PHP 指令碼中使用這個函數了: html function writeMyName() { echo...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.