<?php //變量聲明(php變量無需單首創建,變量會在第一次賦值時建立) $a = 1; //弱類型(php變量會根據其值自動轉換爲相應的數據類型) $a = "a"; $A = 2.0; //命名規則(大小寫敏感,建議採用小駝峯方式並增長三字節的類型前綴) $strName = "張偉佩"; $intAge = 24; //做用域 function sayHi(){ $strLocal = "小明"; echo $strName." say hi"; // say hi echo $strLocal." say hi"; // 小明 say hi //Global做用域只能在函數外進行訪問,若在函數內訪問能夠經過如下兩種方式 //1.在變量前加global關鍵字 global $strName; echo $strName." say hi"; // 張偉佩 say hi //2.經過數組$GLOBALS[index],該數組已鍵值對形式存放了全部全局變量 echo $GLOBALS['intAge']; //24 } sayHi(); ?>
常規運算符php
= + - * / % += *= ++ --
字符加.
數組
<?php //字符鏈接符 $str1 = "hello"; echo $str1." world"; //hello world //a.=b 即 a = a.b $str2 = " world"; $str1.=$str2; //$str1 = $str1.$str2; echo $str1; //hello world ?>
<?php $a = "1"; $b = 1; //「==」 判斷兩個變量數值是否相等 var_dump($a == $b); //bool(true) //「===」判斷兩個變量數值和類型是否都一致 var_dump($a === $b); //bool(false) //因爲php變量具備弱類型,兩變量若類型不一樣,比較時具備必定規則 //first 存在bool的都轉爲bool,true > false var_dump(true > 0); //bool(true) //next 存在數字,均轉爲數字 var_dump("12" > 2); //bool(true) var_dump(1 > "a"); //bool(true) var_dump('f' > 2); //bool(false) //next 均爲數字字符串則轉爲數字比較 var_dump("12" > "110"); //bool(fase) //last 按字符串比較 var_dump("a1" < "b"); //false ?>
<?php //數組聲明經過array關鍵詞,除定義常規數組外還能夠經過=>來聲明鍵值對數組 $arrCars = array("bmw","volvo","audi","volvo"); $arrAges = array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); //數組遍歷 //1.for for($i = 0;$i < count($arrCar);$i++){ echo $arrCar[$i]; } //2.foreach foreach($arrCars as $car){ echo $car; } foreach($arrAges as $key => $value){ echo $key."'s age is ".$value; } //3.指針 reset($arrAges); while(list($key,$val)= each($arrAges)) { echo "$key=> $val<br />"; } //經常使用數組方法 count($arrCar); //返回數組大小,4 sort($arrCar); //排序,按元素內容正向排序,【"audi","bmw","volvo","volvo"】 usort($arrCar,"mySortFunc"); //根據自定義函數進行排序 array_unique($arrCar); //移除重複元素,【"audi","bmw","volvo"】 array_push($arrCar,"tesla"); //入棧元素,【"audi","bmw","volvo","tesla"】 array_shift($arrCar); //刪除並返回數組首個元素,【"bmw","volvo","tesla"】 array_map("myMapFunc",$arrCar); //對數組內每一個元素執行自定義函數 ?>
<?php $strName = "HelloWorld"; echo strlen(strName); //10 ?>
<?php $strName = "Hello World"; echo strpos(strName,"World"); //6 ?>
<?php $arrWords = explode(" ","Hello World"); var_dump($arrWords); //array(0 => "Hello",1 => "World") //implode與explode相對,將數組轉換爲字符串,別名join echo implode(" ",$arrWords); //"Hello World" ?>
<?php $str1 = "hello"; $str2 = "world"; if(strcmp($str1,$str2) > 0) echo "$str1大於$str2"; ?>
<?php //經過Class關鍵字聲明類,封裝了相關的成員屬性和方法 Class Person{ //類的屬性 public $name; //類構造函數 function __construct($n){ $this->name = $n; } //【public】公有方法,在各個位置都可訪問 public function sayHi(){ echo "hi,my name is ".$this->name; } //【private】私有方法,只有在本類中訪問 private function temp(){ echo "here in Person"; } } //子類(經過extends關鍵字繼承父類中修飾符爲public和protected的屬性和方法,php中爲單繼承,父類僅有一個) Class Programmer extends Person{ public $type; //當子類中能夠聲明與父類中同名的方法,該方法具備與父類不一樣的功能,稱爲重載 function __construct($n,$t){ //當須要調用父類中方法時,經過parent::funcName來訪問 parent::__construct($n); //$this是類中自帶的指針,指向當前調用該方法的對象 $this->type = $t; } public function sayType() { echo "I'm a ".$this->type; } } //經過new關鍵字聲明子類對象 $objPgm = new Programmer("zhangweipei","rd"); //調用父類繼承的方法 $objPgm->sayHi(); //hi,my name is zhangweipei //調用自身方法 $objPgm->sayType(); //I'm a rd //父類中private方法沒法被繼承,所以下面調用報錯 $objPgm->temp(); //Fatal error ?>
在類中具備「魔術功能」的一些特定方法稱爲魔術方法,一般以__
開頭,常見的魔術方法除上面見到的__construct
外還有__set、__get、__call
等服務器
方法 | 說明 | 語法 |
---|---|---|
__construct | 構造函數,建立對象時 | public void __construct (mixed $value) |
__set | 在給不可訪問屬性賦值時 | public void __set ( string $name , mixed $value ) |
__get | 讀取不可訪問屬性的值時 | public mixed __get ( string $name) |
__call | 在對象中調用一個不可訪問方法時 | public mixed __call ( string $name , array $arguments ) |
<?php Class Person{ private $name = "defalutName"; public function sayHi(){ echo "hi,my name is ".$this->name."\n"; } private function temp(){ echo "Inside in Person"; } //在給不可訪問屬性賦值時 public function __set($name , $value){ echo "you're setting ".$name." to ".$value."\n"; } //讀取不可訪問屬性的值時 public function __get($name){ echo "you're getting ".$name."\n"; } //在對象中調用一個不可訪問方法時 public function __call($name , $arguments) { echo "you're calling function ".$name." with arguments ".implode(",", $arguments)."\n"; } } $objP = new Person(); echo $objP->name; //you're getting name $objP->sayHi(); //hi,my name is defalutName $objP->name = "Lee"; //you're setting name to Lee $objP->temp("arg1","arg2"); //you're calling function temp with arguments arg1,arg2 ?>
<?php //打開文件,第一個參數爲文件路徑,第二個爲打開模式, //常見的打開模式有r只讀、w只寫、r只寫(追加)、x只寫(文件不存在時不新建)、r+讀寫等 $fileHandle = fopen("test.txt","a+"); //全讀 $strContent = fread($fileHandle,filesize("test.txt")); //逐行讀 while(!feof($fileHandle)){ $strLine = fgets($fileHandle); } //寫文件 fwrite($fileHandle,"hello world\n"); //關閉文件 fclose($fileHandle); ?>
當異常發生時,若未被捕獲或執行相應處理將致使嚴重錯誤而中斷程序,經過異常處理方法能夠捕獲異常並執行相應的邏輯ide
<?php //handleArr方法僅接受array類型的參數,不然便拋出異常 function handleArr($arr) { if(!is_array($arr)){ //Exception爲php內置的異常類,接受兩個參數,第一個爲錯誤信息,第二個爲錯誤代碼 //也自定義繼承系統Exception類的異常類,而後在catch中調用自定義方法 throw new Exception("param is not array", 1); } # some code handle with arr } try { $intTemp = 1; //傳入整形參數,觸發異常 handleArr($intTemp); } //捕捉異常 catch (Exception $e) { //Exception中的經常使用方法有 echo $e->getCode(); //返回錯誤代碼 echo $e->getMessage(); //返回錯誤信息 echo $e->getFile(); //返回代碼文件的完整路徑 echo $e->getLine(); //返回代碼文件中產生異常的代碼行號 } ?>
變量 | 說明 |
---|---|
$GLOBALS | 全局做用域中可用的變量 |
$_SERVER | 服務器及執行環境的信息 |
$_GET | 經過 URL 參數傳遞給當前腳本的變量的數組 |
$_POST | 經過Post方式傳遞給當前腳本的變量的數組 |
$_COOKIE | 經過 HTTP Cookies 方式傳遞給當前腳本的變量的數組 |
Reference:
http://www.w3school.com.cn/php/
http://php.net/docs.php
PHP和MySql Web開發[book]函數
博文做者:vicfeel
博文出處:http://www.cnblogs.com/vicfeel
本文版權歸做者和博客園共有,歡迎轉載,但須保留此段聲明,並給出原文連接,謝謝合做!
若是閱讀了本文章,以爲有幫助,您能夠爲個人博文點擊「推薦一下」!this