PHP small note
另類用法:
- $var[0] == $var{0} #用大括號代替中括號
- switch
- switch ($i) {
....
}
相等於
switch ($i):
....
endswitch;
- switch ($i) {
- while
- while(cond){
....
}
相等於
while(cond):
....
endwhile;
- while(cond){
陣列(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));
- $var = array(array(data00, data01),
Foreach
- foreach ($array as $value){
....
}
類似於 Python的
for value in array:
.... - foreach ($array as $key=>$value){
....
}
類似於 Python的
for key in array:
....
函數 Function
- 宣告:
- function name(argument){
....
}
- 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....
字串
- 字串連接用 '.'(建議) 或 '+' 。
- strlen(string) #回傳字串長度。
- substr(string,intStart,intAmount) #回傳取字串以intStart開始取intAmount個字元。
- strtoupper(string) #回傳字串大寫。
- strtolower(string) #回傳字串小寫。
- strpos(string, stringSearch) #回傳從string中尋找stringSearch,並回傳找到的index,沒找到回傳false。
- str_replace (beforeString, afterString, string) # 回傳 (string中把所有beforeString字串取代成afterString之後的字串)。
數學函數
- round(number, intAfterPoint) #回傳四捨五入取到小數點以下第intAfterPoint位。
- rand() #回傳取一個int的亂數。
- rand(intStart, intEnd) #回傳取一個從intStart以上且在intEnd以下的亂數。
陣列函數
- array_push(array, data) #把data新增到array最後面。
- count(array) #回傳計算array共有幾個元素。
- sort(array) #由小到大排度array中的元素。
- rsort(array) #由大到小排度array中的元素。
- 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
留言
張貼留言