php變數的定義和範圍的代碼執行個體詳解

來源:互聯網
上載者:User
一、 php變數的定義和範圍

變數:在方法中調用屬性的時候,不能直接使用echo ,在類中要使用$this對象

1,PHP變數的定義和使用 :字母 底線 開頭 ^[a-zA-Z_]\w*

2,PHP變數的範圍:

局部範圍:在函數內部定義的變數,只能在函數內部起作用

全域範圍:global $var

  $GOOBALS[‘var’]

3,變數的賦值(值傳遞;引用傳遞):1、值傳遞:

$num1 =10;$num2=$num1;$num1=20;echo $num2;//php預設的變數賦值傳遞,不改變原來的值//輸出10

2、引用傳遞:

//引用傳遞,通過&來實現,引用的是儲存地址中的值

4,超全域變數(預定義的變數):

① $GLOBALS 儲存全域變數

② $_SERVER 儲存伺服器資訊

③ $_GET 儲存get資料

④ $_POST 儲存post資料

⑤ $_FILES 儲存提交的檔案

⑥ $_COOKIE 儲存得到的cookie

⑦ $_SESSION 儲存session資料

⑧ $_REQUEST 儲存請求資料

⑨ $_ENV 儲存環境

二、 常量

define()函數可以定義常量

defined()判斷某個常量是否被定義了

特點:

(1)常量的定義不用使用$

(2)常量不用理會範圍,可以在任何地方使用

(3)常量一旦被定義,不能被重新複製

魔術常量(7個):

FILE 獲得當前檔案的絕對路徑和檔案名稱

LINE 檔案當前的行號

三、 控制結構

1,return;

(1)函數中使用return,立即停止函數的執行,將函數的值返回;

(2)在php指令碼中使用,停止指令檔代碼的執行

2,require_once()

和require()作用一樣,都是引入外部檔案,區別在於 require_once(),如果該檔案已經被包含,則不會再次包含,避免函數重定義和變數的重新賦值

3,include()和require()的區別在於,include()重複包含檔案時,產生警告層級的錯誤;require()產生致命錯誤

四、 函數

參數的傳遞,預設也是值傳遞,即使在函數內部修改了參數的值,也不會影響函數外面的值

要想影響通過引用傳遞,引用的是這個變數在記憶體空間儲存的值

五、 php的資料類型

1,標量類型

字串

1,字串的定義

單引號:單引號會將內容原封不動的輸出---執行速度快

雙引號 (比較):雙引號會解析變數---執行速度慢

2,常用的字串函數(重點)

尋找:

//strpos(haystack,needle);尋找字串首次出現的位置$str3 ='you are beautiful!';                      $a= 'a';   $b= strpos($str3,$a);//字串首次出現的位置                 //strrchr() 從字串最後一次出現的位置開始,返回子字串


替換:

   //trim()去掉字串首尾空白字                   echo trim($str4);//去除前後空格//str_replace(尋找的字串,替換的字串,在哪個字串中尋找);$str5 = FILE;   $str6= str_replace('string.php','',$str5);//substr_replace()把字串的一部分替換成另一個字串echo substr_replace($str8,'mathbook',11);//替換//substr(string,start,length);返回字串的子串echo substr($str8,8);//從m開始截取

比較:

        //strcasecmp()以不區分大小寫方式比較字串,返回0表示字串相等//將字串全部轉化為小寫 strtolower($str1);//將字串全部轉化為大寫 strtoupper($str2);

拆分:

    //explode將字串根據某個定界符分割成一個數組                  $str_1 ='php,3g,.net,java';                   $str_2= explode(',',$str_1);//根據某個定界符,將字串分割成一個數組                   var_dump($str_2);//implode()通過一個定界符使數組元素串連成一個字串                  $arr =array('php','3g','.net','java');                   echo$str_3 = implode($arr,',');//根據定界符,將數組串連起來

3,Regex匹配:

   preg_match()  進行Regex匹配                  //php支援Regex,正則可以比喻成一個篩子,js可以使用它,php也可以使用                  echopreg_match('/(HTTP:\/\/W{3}\.)(.+)/i','HTTP://WWW.sina.com',$match);                   //如果提供了第三個參數,會將整個Regex匹配的所有結果放到數組中      echo $domain = $match[2];preg_replace(Regex,替換的結果,尋找的字串)  //將sina.com替換成360.com    echo preg_replace('/sina\.com/','360.com','HTTP://WWW.sina.com');//按照Regex匹配的結果進行替換

整型

浮點型

布爾型

2,複合類型

數組:

1, 數組的定義 array() 或 []

2,遍曆數組(重點)

(1)使用for()遍曆數組,適合下標從0開始,連續的整型索引數組

             $arr =array('php','3g');                      //count()統計數組元素的個數也就是數組的長度                      for($i=0;$i<count($arr);$i++){                     echo$arr[$i];   }(2)foreach()遍曆數組$array =array('php','.net','subject'=>'java');    foreach($arrayas $key => $value){   echo$key.':'.$value;   echo'<br/>';   }

3,數組指標

(1)current()獲得當前數組指標指向的數組元素

(2)next() 將數組的指標指向下一個

(3)prev() 將數組的指標向前移動一個

(4)reset() 重設數組指標

(5)end() 將數組指標移動到最後

4,常用的數組函數

array_push() 入棧,講一個或多個元素壓入數組的末尾

array_pop() 出棧,將數組最後一個元素彈出

array_shift() 將數組開頭的元素移出

array_unshift() 在數組開頭插入一個元素

對象

3,特殊類型

NULL

Resource

聯繫我們

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