PHP small note

另類用法:





  • $var[0] == $var{0} #用大括號代替中括號


  • switch



    • switch ($i) {

      ....

      }

      相等於

      switch ($i):

      ....

      endswitch;






  • while



    • while(cond){

      ....

      }

      相等於

      while(cond):

      ....

      endwhile;








陣列(Arrays)





  • 一般陣列



    • $var = array(d1, d2, d3, ...); #宣告陣列。


    • 刪除陣列:



      • unset($var); #刪除整個陣列。


      • unset($var[2]); #刪除陣列的第二個元素。










  • 關聯陣列(associative array)(map)



    • $var = array(key1=> d1, key2=> d2, key3=> d3, ...); #宣告陣列。






  • 多維陣列(Multidimensional Arrays)



    • $var = array(array(data00, data01),

      data10, data11),

      data20, data21));








Foreach





  • foreach ($array as $value){

    ....

    }

    類似於 Python的

    for value in array:

    ....


  • foreach ($array as $key=>$value){

    ....

    }

    類似於 Python的

    for key in array:

    ....




函數 Function





  • 宣告:



    • function name(argument){

      ....

      }








global





  • $num = 5

    function printNum(){

    echo $num;

    }

    printNum(); #這邊會報錯,因為function內抓不到外面的num變數。


  • $num = 5

    function printNum(){

    global $num;

    echo $num;

    }

    printNum(); #這邊正確了,因為global使的function知道$num是外面的$num。




常數





  • M_PI #即PI 3.14159....




字串





  1. 字串連接用 '.'(建議) 或 '+' 。


  2. strlen(string) #回傳字串長度。


  3. substr(string,intStart,intAmount) #回傳取字串以intStart開始取intAmount個字元。


  4. strtoupper(string) #回傳字串大寫。


  5. strtolower(string) #回傳字串小寫。


  6. strpos(string, stringSearch) #回傳從string中尋找stringSearch,並回傳找到的index,沒找到回傳false。


  7. str_replace (beforeString, afterString, string) # 回傳 (string中把所有beforeString字串取代成afterString之後的字串)。




數學函數





  1. round(number, intAfterPoint) #回傳四捨五入取到小數點以下第intAfterPoint位。


  2. rand() #回傳取一個int的亂數。


  3. rand(intStart, intEnd) #回傳取一個從intStart以上且在intEnd以下的亂數。




陣列函數





  1. array_push(array, data) #把data新增到array最後面。


  2. count(array) #回傳計算array共有幾個元素。


  3. sort(array) #由小到大排度array中的元素。


  4. rsort(array) #由大到小排度array中的元素。


  5. join(stringGlue, array) #回傳以stringGlue為分隔的方式,array中所有的元素。省略stringGlue的話則以空字串代替。




物件導向PHP



用法





  • class className{

    ....

    }

    $classVar = new className();



    $classVar->var; #取變數

    $classVar->function(); #用函式




建構子(constructor)





  • class className{

    ....

    public function __construct($prop1, $prop2) {

    $this->prop1 = $prop1;

    $this->prop2 = $prop2;

    }

    ....

    }




解構子 (destructor)





  • class className{

    ....

    public function __destruct() {

    echo "destruct!!";

    }

    ....

    }




 

內建函數





  • is_a(classVar, class) # 判斷物件classVar是不是屬於class。回傳true或false。


  • property_exists(classVar, string) # 判斷物件classVar的屬性(他擁有的變數)中有沒有string這個屬性。回傳true或false。


  • method_exists(classVar, string) # 判斷物件classVar的方法(他擁有的函數)中有沒有string這個方法。回傳true或false。




繼承(Inheritance)





  •  class Shape {

    ....

    }



    class Square extends Shape {

    ....

    }




覆寫(Overriding)





  •  class Shape {

    $sides = true;

    plublic function hi() {

    return "hi";

    }

    }



    class Square extends Shape {

    $sides = 4;

    public function hi(){

    return "hi I am square";

    }

    }




防止覆寫(final)





  •  class Shape {

    final plublic function hi() { # 其他繼承自Shape的class不能覆寫此function。

    return "hi";

    }

    }




常數(constant)





  • class my_math {

    const my_PI = 3.14159;

    }


  • ::取得物件的常數



    • echo my_math::my_PI;








Static





  • 靜態宣告會在程式直行時先載入到記憶體中,而不是執行時才載入,所以可以使用scope resolution(範圍解析::)來取得或使用函數(不用建立class)。


  • class my_math {

    const my_PI = 3.14159;

    public static function showPI(){

    echo "3.14";

    }

    }

    my_math::showPI();




MySQL PHP





  • 檢查資料表是否存在 (mysqli_num_rows($this->query("SHOW TABLES LIKE '{$tableName}'")) == true) #回傳true/false




 

留言

這個網誌中的熱門文章

成人剪舌繫帶聽過嗎?我剪了!!

Scp - ssh 的遠端檔案傳輸指令

睡覺使你更有效率