變數:
變數型態:
整數、浮點數、字串、布林、陣列、物件、NULL、resource、callable
變數轉義:
$totalqty = 0;
$totalamount = (float)$totalqty;
可變變數:
${$today} 變成 $sunday 最後顯示 星期日
常數:
define(‘APPLE’,25);//呼叫常數APPLE輸出25
一但設定,就無法在腳本的其他地方修改。
phpinfo();可查看所有常數
變數範圍:
區域變數:
$shop_name
全域變數:
demo0411.php宣告
function welcome()
{
global $shop_name;
echo “您好,歡迎光臨{$shop_name}!”;
}
demo0412.php使用
function welcome()
{
echo “您好,歡迎光臨{$GLOBAL[‘shop_name’]}!”;
}
超級全域變數:
$GLOBALS可以查看所有全域變數
$_SERVER可以輸入特定的變數取得網頁伺服器的一些設定值
$_GET接收GET傳來的變數
$_POST接收POST傳來的變數
$_COOKIE從cookie中取得變數
$_REQUEST從GET,POST,COOKIE中取得變數
$_FILES若表單有使用檔案表單元件,會傳來一組$_FILES變數
$_ENV不常用會取得該主機的環境變數
$_SESSION和cookie一樣,只是存放在伺服器中,比較安全,可以存放身份辨識資料。
this
$this->name
可指向類變數
運算子
+加、-減、*乘、/除、%餘
$c = $a.$b字串串接
複合運算子:
$a += $b相加設為$a、-=減、/=除、%=餘、.=字串串接
參考運算子:
$a = 5;
$b = 7;
$b = &$a;
$a = 7;//此時$a $b皆指向記憶體的同一個區塊,值為7。
unset($a);解除共用記憶體
與指標不同,參考像別名,共用同一個記憶體區塊,當$a改變$b也會改變。
比較運算子
根據比較結果回傳boolean布林值(true,false)。
注意:=是指派而非比較。
相等==:測試兩個值是否相等
不相等!=、<>
相同===:兩個值相等外,型態也得相同。
不相同!==
小於<
大於>
小於等於<=
大於等於>=
飛船運算子(PHP 7up)<=>
小於回傳-1,等於回傳0,大於回傳1
邏輯運算子
!:NOT如果答案是否則回傳真,是真則回傳否。
&&、and:AND都是真則回傳真,其餘搭配回傳否。
||、or:OR如果有一個為真,則回傳真。
xor:Not OR其中一個為真回傳真,兩者都是真或都是否則回傳否。
(注意:英文比符號順序低。)
位元運算子(較少用到 目前對我來說意義不明XD)
&位元AND
|位元OR
~位元NOT
^位元XOR
<<左移 $a左移$b個位元
>>右移 $a右移$a個位元
三元運算子
$a==$b?$c:$d;
$a ?: 10;(是null回傳10。等效empty($a))(PHP 5.3 up)
合併運算子(PHP 7 up)(等校isset($a))
$a = ‘小美’;
$name = $a ?? ‘沒有這個人’;
echo $name; //有則顯示小美,註解掉則顯示沒有這個人
錯誤抑制運算子$a = @(57/0);可抑制錯誤。可啟用track_errors將錯誤訊息放在全域變數$php_errormsg裏。
執行運算子 可執行系統指令例如 $out =
ls -la
;
陣列運算子:
聯集$a+$b
相等$a == $b
相同$a === $b
不相等 $a != $b , $a <> $b
不相同$a !== $b
型態運算子:檢查物件是否為某個類別的實例。
變數處理函式:
settype($a,’float’);給予一個變數並設定為float可更改為其他變數型態(float會回報為double)
gettype($a);取得變數型態
其他函式:
is_array($a)檢查是否為陣列
is_double($a)、is_float($a)、is_real($a)檢查是否為浮點數
is_long($a)、is_int($a)、is_integer($a)檢查是否為整數
is_string()檢查變數是否為字串
is_bool()檢查變數是否為布林值
is_object()檢查變數是否為物件
is_resource()檢查變數是否為資源?
is_null()檢查變數是否為null
is_scalar()檢查變數是不是純量(integer boolean string float)
is_numeric()檢查變數是否為任何形式的數字或數字字串
is_callable()檢查變數是不是有效函式的名稱
測試變數狀態
isset($a)如果變數存在則為true,可用逗號分格變數,皆存在則為true其餘為false
unset($a)來清除不存在的變數
empty($a)檢查變數是否存在且非空非零值
重新解釋變數:變數轉義
$a = intval(42, 8);將各種變數轉換為int
$a = floatval(‘The122.34343’);將各種變數轉換為浮點數
$a = strval($b);將各種變數轉換為字串
條件式
1.if
if($a == $b){
[條件成立執行內容]
}elseif($c == $d){
[條件成立執行內容]
}else{
[條件皆不成立執行內容]
}
2.switch
switch($a){
case “a”:
//do something…
break;//離開否則會接下去
case “b”:
//do something…
case “c”:
//do something…
default:
//如果都沒有do something…
break;
}
3.while迴圈(重複執行到滿足條件)
while($a <= 5){
//do something…
$a++;
}
4.for,foreach迴圈
for($a = 1;$a<=5;$a++){
//do something…
}
$data = [‘小黑’,’小白’,’大黑’,’大白’,’多多’,’小歐’,];
foreach($data as $itrm){
echo $item . “<br>”;
}
5.do…while迴圈(最少執行一次 迴圈)
do{
//do something…
}while($a <= 5);
跳出控制結構
return;跳出函式
break;跳出迴圈
exit;停止整個PHP腳本
其他控制結構語法
if($a == $b):
//do something…
//do something2…
endif;
將大括號換為:並且結束與換成end系列,其他還有endswitch;endwhile;endfor;endforeach;
使用declare⚠️不懂⚠️
用途是設定程式區塊的執行指令?
有ticks(用來插入指令)與encoding(用來設定腳本的編碼)