一、 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