PHP學習筆記——5.函數

來源:互聯網
上載者:User

標籤:

目錄:

PHP學習筆記——1.變數

PHP學習筆記——2.常量

PHP學習筆記——3.運算子

PHP學習筆記——4.控制結構

PHP學習筆記——5.函數

 

1.概念

  從編程的角度,

  將若干語句封裝在一起,取個名字

  再依據名稱進行調用,即為函數

2.聲明及調用

  function abc(形參) {

  ...

  return 值;

  }

  abc(實參);

  實際上,形參即為變數名,實參即為變數值

3.命名規範

  和變數一致,但不區分大小寫

4.預設參數

  function abc(形參=‘預設值‘) {

  ...

  }

  abc(); =>預設值

  abc(實參); =>傳入值

  註:若有多個形參,且其中某個形參有預設值,則將其放在最後

5.函數的範圍

  局部變數:函數內部的變數

  全域變數:函數外部的變數

  預設情況下,函數體內的變數,與外界的變數無關

  註:JS中全域變數會被函數內部找到調用,但PHP不會

  執行函數式,會開闢一塊獨立調用空間,調用完即釋放

6.函數的執行權與執行權的交回

  當調用函數時,程式的執行權進入到函數內部

  當語句執行完/return時,執行權即交回

7.函數傳回值

  有return值則返回return值

  若沒有return值或return為空白則返回NULL

  註:return只能返回 一個 值/複合值

8.動態函數

  function wel(){

  echo ‘歡迎‘;

  }

  function hi(){

  echo ‘你好‘;

  }

  $func=$_GET[‘func‘]; <=wel/hi

  $func(); =>歡迎/你好

  加()後,PHP即會將括弧前的值當做函數進行解析

9.引用傳參

  $age=19;

  function foo(&$num){

  $num+=5;

  }

  foo($age);

  echo $age; =>24

  註:此時傳遞的不是$age的值19,而是將$age的地址傳遞給了$num,

  當$num+=5時,$age自然也跟著改變了

  所以,局部變數和全域變數並不是水火不容的

  是有機會相互影響的,如引用傳參、超全域變數

10.遞迴

①定義

  函數在其內部調用自身

②初識

  例:求1到100的和

  可分析分:

  sum(100) == sum(99) + 100

  sum(99) == sum(98) + 99

  ...

  sum(2) == sum(1) +2

  sum(1) == 1

  即:

  function sum ($n) {
  if($n > 1) {
  return sum($n-1) + $n;
  }else{
  return 1;
  }
  }

  例:遞迴操作聯級目錄

  a{1,2(A,B<①②③>,C),3}

  則操作順序依次為 1 2 A B ① ② ③ C 3

③注意

  因遞迴為自身調用自身,所以層次太深,不宜使用

  必須有一個終止條件

11.超全域變數

①定義

  一般情況下,頁面內聲明的‘普通全域變數‘,在函數內訪問不到

  但:‘常量‘在函數內能訪問

  且還有一類變數——超全域變數,在頁面的任意一處(無論是多深層的函數),

  都可直接存取

②九大超全域變數

  $_GET[]=>接收地址欄參數

  $_POST[]=>接收POST型參數(如:使用者註冊參數)

  $_PEQVEST[]=>是$_GET、$_POST、$_COOKIE的並集

  $_FILES[]=>檔案上傳

  $_COOKIE[]=>使用者登入

  $_SESSION[]=>使用者登入

  $_ENV[]

  $_SERVER[]=>伺服器及訪客資訊(如使用者所使用的系統版本、IP地址等)

  $_SERVER[‘REMOTE_ADRR‘]=>使用者IP

  $_SERVER[‘HTTP_USER_AGENT‘]=>使用者瀏覽器資訊

  $_GLOBALS[]=>頁面內所有全域變數的‘名單‘,可在其中找到所有聲明過的變數

  global關鍵字,用於在函數體內部引用全域變數

  例:$age = 5;

  function t(){

  global $age;=>引用了全域範圍內的$age

  $age++;

  }

  t();

  echo $age;=>6

 

@zhnoah
出處:http://www.cnblogs.com/zhnoah/
本文著作權歸本人和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連 
接,否則保留追究法律責任的權利。

PHP學習筆記——5.函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.