目錄數組函數類和對象字元串操作會話控制時間和日期異常處理一、數組 1、索引數組header("Content-Type: text/html; charset=utf-8");//創建空數組$str = array();//索引數組:數組的鍵是整數的數組,並且鍵的整數順序是從0開始,依次類推。$f....
目錄
一、數組
1、索引數組
header("Content-Type: text/html; charset=utf-8"); //創建空數組 $str = array(); //索引數組:數組的鍵是整數的數組,並且鍵的整數順序是從0開始,依次類推。 $fruit = array("蘋果","香蕉","菠蘿"); //索引數組賦值: //1.用數組變數的名字後面跟一個中括弧的方式賦值 $arr[0]='蘋果'; //使用=>符號來分隔鍵和值,左側表示鍵,右側表示值。 array('0'=>'蘋果'); //count($arr)返回數組長度 //for迴圈訪問索引數組裡的值 for($i=0; $i<count($fruit); $i++){ echo "$fruit[$i]<br>"; } //foreach迴圈訪問索引數組裡的值 foreach($fruit as $k=>$v){ echo $k."...".$v."<br>"; }
2、關聯數組
header("Content-Type: text/html; charset=utf-8"); //關聯數組:指數組的鍵是字元串的數組 $fruit = array('apple'=>"蘋果", 'banana'=>"香蕉", 'pineapple'=>"菠蘿"); //關聯數組賦值 //1.用數組變數的名字後面跟一個中括弧的方式賦值 $arr['apple']='蘋果'; //2.使用=>符號來分隔鍵和值,左側表示鍵,右側表示值 array('apple'=>'蘋果'); //foreach迴圈訪問關聯數組裡的值 foreach($fruit as $k=>$v){ echo '<br>水果的英文鍵名:'.$k.',對應的值是:'.$v; }
二、函數
1.可變函數
//可變函數,通過變數的值來調用函數 function name() { echo 'jobs'; } $func = 'name'; //調用可變函數 $func();
2.判斷函數是否存在
function func() { } if (function_exists('func')){ echo 'exists'; }
三、類和對象
//定義一個類 class Car { //定義屬性 public $name = '汽車'; //定義方法 public function getName() { //方法內部可以使用$this偽變數調用對象的屬性或者方法 return $this->name; } } //實例化一個對象 $car = new Car(); //調用對象的方法 echo $car->getName(); //類的屬性 //public:公開的 //protected:受保護的,受保護的屬性不允許外部調用 //private:私有的,私有屬性不允許外部調用 //靜態方法:使用關鍵字static修飾 //靜態方法不需要實例化對象,可以通過類名直接調用,操作符為雙冒號:: class Car { public static function getName() { return '汽車'; } } echo Car::getName(); //結果為“汽車” //構造函數__construct():在每次對象創建的時候調用該函數 //析構函數__destruct():在每次對象銷毀的時候調用該函數 class Car { //增加構造函數與析構函數 function __construct() { print "構造函數被調用 \n"; } function __destruct() { print "析構函數被調用 \n"; } } $car = new Car();
四、字元串操作
1.單雙引號的區別
//雙引號串中直接包含字串變數 //單引號串中的內容總被認為是普通字元 $str='hello'; echo "str is $str"; //運行結果: str is hello echo 'str is $str'; //運行結果: str is $str
2.去除字元串首尾的空格
//trim去除一個字元串兩端空格。 //rtrim是去除一個字元串右部空格 //ltrim是去除一個字元串左部空格 trim(" 空格 ");
3.獲取字元串的長度
//英文字元長度 strlen($str); //中文字元長度 mb_strlen($str,"UTF8");
4.字元串的截取
//英文字元串的截取函數substr() //substr(字元串變數,開始截取的位置,截取個數) $str='i love you'; echo substr($str, 2, 4); //中文字元串的截取函數mb_substr() //mb_substr(字元串變數,開始截取的位置,截取個數, 網頁編碼) $str='我愛你,中國'; echo mb_substr($str, 4, 2, 'utf8');
5.字元串查找
//strpos(要處理的字元串, 要定位的字元串, 定位的起始位置[可選]) $str = 'I want to study at imooc'; $pos = strpos($str, 'imooc');
6.字元串替換
//str_replace(要查找的字元串, 要替換的字元串, 被搜索的字元串, 替換進行計數[可選]) $str = 'I want to learn js'; $replace = str_replace('js', 'php', $str);
7.字元串的合併與分割
//字元串合併函數implode():把數組元素組合為一個字元串 //implode(分隔符[可選], 數組) $arr = array('Hello', 'World!'); $result = implode('', $arr); print_r($result);//結果顯示Hello World! //字元串分隔函數explode():函數返回由字元串組成的數組 //explode(分隔符[可選], 字元串) $str = 'apple,banana'; $result = explode(',', $str); print_r($result);//結果顯示array('apple','banana')
五、會話控制
1.cookie
//設置cookie //name( Cookie名)可以通過$_COOKIE['name'] 進行訪問 //value(Cookie的值) //expire(過期時間)Unix時間戳格式,預設為0,表示瀏覽器關閉即失效 //path(有效路徑)如果路徑設置為'/',則整個網站都有效 //domain(有效域)預設整個功能變數名稱都有效,如果設置了'www.imooc.com',則只在www子域中有效 $value = 'test'; setcookie("TestCookie", $value); //有效期一小時 setcookie("TestCookie", $value, time()+3600); // cookie的刪除與過期時間 setcookie('test', '', time()-1);
2.session
//先執行session_start方法開啟session session_start(); //通過全局變數$_SESSION進行session的讀寫。 $_SESSION['name'] = 'jobs'; echo $_SESSION['name']; //刪除某個session unset($_SESSION['name']); //刪除所有session session_destroy();
六、時間和日期
//UNIX 時間戳:表示從 1970年1月1日 00:00:00 到當前時間的秒數之和。 //函數 time() 來取得伺服器當前時間的時間戳 $time=time(); echo $time; //date()函數,來取得當前的日期 //date(時間戳的格式, 規定時間戳【預設是當前的日期和時間,可選】) //設置預設的時區 date_default_timezone_set('Asia/Shanghai'); //輸出1396193923對應的日期 echo date("Y-m-d"); //函數strtotime實現功能:獲取某個日期的時間戳,或獲取某個時間的時間戳 //strtotime(要解析的時間字元串, 計算返回值的時間戳【預設是當前的時間,可選】) //1398700800,這個數字表示從1970年1月1日 00:00:00 到2014年4月29號經歷了1398700800秒 echo strtotime('2014-04-29'); //1398700801,這個數字表示從1970年1月1日 00:00:00 到2014-04-29 00:00:01時經歷了1398700801秒 echo strtotime('2014-04-29 00:00:01');
七、異常處理
//創建可拋出一個異常的函數 function checkNum($number){ if($number>1){ throw new Exception("異常提示-數字必須小於等於1"); } return true; } //在 "try" 代碼塊中觸發異常 try{ checkNum(2); //如果異常被拋出,那麼下麵一行代碼將不會被輸出 echo '如果能看到這個提示,說明你的數字小於等於1'; }catch(Exception $e){ //捕獲異常 echo '捕獲異常: ' .$e->getMessage(); } //Exception具有幾個基本屬性與方法,其中包括了: //message 異常消息內容 //code 異常代碼 //file 拋出異常的文件名 //line 拋出異常在該文件的行數 //其中常用的方法有: //getTrace 獲取異常追蹤信息 //getTraceAsString 獲取異常追蹤信息的字元串 //getMessage 獲取出錯信息 class MyException extends Exception { function getInfo() { return '自定義錯誤信息'; } } try { throw new MyException('error'); } catch(Exception $e) { echo $e->getInfo(); }