PHP入門教學 - 基本用法 1
1. PHP介紹
PHP 中文是「超文本預處理器」,是一種通用開源腳本語言。PHP是在伺服器端執行的腳本語言,與C語言類似,是常用的網站程式語言。PHP獨特的語法混合了C、Java、Perl以及 PHP 自創的語法。利於學習,使用廣泛,主要適用於Web開發領域。
PHP是屬於"內嵌式"的動態網頁設計,也就是說PHP的程式與網頁的HTML標籤混合於同一個檔案中。
<!DOCTYPE html> <html> <p> hello <?php echo 'knowhowfarm';?> !!! </p> </html>
結果如下
PHP 其實就是透過 Web Server 去做一個解析,然後變成一個HTML的網頁,最後在吐出畫面給瀏覽器 , 讓使用者看到~
2. PHP基本語法
內容輸出
- echo:輸出字串。
- print_r():輸出複雜資料型別。比如陣列、物件。
- var_dump():輸出詳細資訊。
<?php
echo '123';
//結果:123
$arr =array(1,2,'123');
print_r($arr);
//結果:Array ( [0] => 1 [1] => 2 [2] => 123 )
var_dump($arr);
// 結果:array(3) { [0]=> int(1) [1]=> int(2) [2]=> string(3) "123" }
// array(3) 代表陣列的長度為3
?>
變數
變數以 $
符號開頭,其後是變數的名稱。大小寫敏感(就是有分大小寫)
變數名稱必須以字母或下劃線開頭 , 不得用數字
$a1; $_abc;
PHP支援的資料型別包括:
<?php
// 字串 , 單引號或雙引號包住字串
$str = '123';
// 字串拼接 , 以 點 連接字串
$str2 = '123'.'哈哈哈';
// 整數
$numA = 1; //正數
$numB = -2;//負數
// 浮點數
$x = 1.1;
// 布林
$a = true;
$b = false;
// 普通陣列:陣列中可以放 數字、字串、布林值等,不限制類型。
$arr = array('123', 123);
echo $arr1[0];
// 關係型陣列:類似於json格式
$arr1 = $array('name'=>'mark', 'age'=>'26');
echo $arr1['name']; //獲取時,通過 key 來獲取
?>
內建變數 🔥重要🔥
$_SERVER | 以陣列 (array) 方式儲存跟伺服器有關的變數 (variable) ,如使用者的 IP 、瀏覽器等 |
$_GET | 取得 get 傳送過來的資料 (陣列) |
$_POST | 取得 post 傳送過來的資料 (陣列) |
$_FILES | 取得傳送過來的檔案 (陣列) |
$_COOKIE | 以陣列方式儲存利用 cookie 的變數 |
$_SESSION | 以陣列方式儲存利用 session 的變數 |
$_REQUEST | 接收 $_GET 、 $_POST 、 $_COOKIE 等變數 |
$_GET取得get方式傳過來的資料
使用方式 : $_GET['資料名稱']
網址差異 : 網址會帶有資料如下
https://www.knowhowfarm.com/skill/category/all?order=hot&page=1
資料傳遞量 : 由於是透過 URL 帶資料,所以有長度限制
安全性 : 表單參數與填寫內容可在 URL 看到 , 安全性較低 , 但如果非得用get的話 可以使用加密方式增加安全性
$_POST取得post方式傳過來的資料
使用方式 : $_POST['資料名稱']
網址差異 : 網址並不會改變
資料傳遞量 : 由於不透過 URL 帶參數,所以不受限於 URL 長度限制 , 但是也不會儲存太多 應該很耗伺服器資源
安全性 : 透過 HTTP Request 方式,故參數與填寫內容不會顯示於 URL , 安全性較高
$_FILE取得傳過來的檔案
使用方式 : $_FILES["檔案名稱"]
$_FILES["file"]["name"]:上傳檔案的原始名稱。
$_FILES["file"]["type"]:上傳的檔案類型。
$_FILES["file"]["size"]:上傳的檔案原始大小。
$_FILES["file"]["tmp_name"]:上傳檔案後的暫存資料夾位置。
$_FILES["file"]["error"]:如果檔案上傳有錯誤,可以顯示錯誤代碼。
Cookie的使用方法
Cookie:儲存資料於用戶端,伺服器不必負擔紀錄下來檔案的負荷量,但是用戶有可能會關閉Cookie
<?php
setcookie( "data", "knowhowfarm", time()+3600); //變數為data,變數值為knowhowfarm,存活時間一小時(3600秒)
echo $_COOKIE["data"]; //讀取變數
setcookie( "data", "", time()-3600);
//當用完COOKIE想釋放清除它時,需將變數值設成空但這樣還不夠的,
//還記得在設定時我們給他存活時間3600秒嗎那這樣就算變數值設空值,
//變數也還是要等到3600秒後那樣的話,乾脆把存活時間設定為現在時間前3600秒,較為保險安全
?>
Session的使用方法
Session:儲存資料於伺服器端,紀錄下來的檔案量由由伺服器負荷,但好處是不用煩惱用戶會關閉Session的問題
<?php
session_start(); // 啟用session ,要使用session的時候 , 一定要先啟用
$_SESSION['data']="knowhowfarm"; //設定Session數值
echo $_SESSION['data']; //印出session
session_unset("data"); // 清除名稱為data的session
session_unset(); // 清除全部的session
?>
運算子
算數運算子
運算子 | 範例 | 用途 |
+ | $a + $b | $a 和 $b 的和。 |
- | $a - $b | $a 和 $b 的差。 |
* | $a * $b | $a 和 $b 的乘積。 |
/ | $a / $b | $a 除以 $b 的商。 |
% | $a % $b | $a 除以 $b 的餘數。 |
邏輯運算子
範例 | 名稱 | 解釋 |
$a && $b | And(邏輯與) | 如果 $a 與 $b 都為 TRUE就為TRUE |
$a || $b | Or(邏輯或) | 如果 $a 或 $b 任一為 TRUE就為TRUE |
比較運算子
運算子 | 意義 | 範例 | 說明 |
== | 相等 | $a == $b | $a等於$b |
=== | 全等 | $a === $b | $a等於$b, 且資料格式相同。 |
!= | 不相等 | $a != $b | $a不等於$b |
!== | 不全等 | $a !== $b | $a不等於$b, 或資料格式不相同。 |
< | 小於 | $a < $b | $a小於$b |
> | 大於 | $a > $b | $a大於$b |
<= | 小於或等於 | $a <= $b | $a小於或等於$b |
>= | 大於或等於 | $a >= $b | $a大於或等於$b |
if 條件判斷式
if
<?php
$a=1;
$b=2;
//如果$a 小於 $b的話
if( $a < $b ) {
echo ' 變數 $a 小於變數 $b ';
}
?>
if...else...
<?php
$a=2;
$b=1;
if( $a < $b ) {
//如果$a 小於 $b的話執行這邊
echo ' 變數 $a 小於變數 $b ';
}else{
//不是的話執行這邊
echo ' 變數 $a 大於變數 $b ';
}
?>
if ... elseif ... else ...
<?php
$a=2;
$b=2;
if( $a < $b ) {
//如果 $a 小於 $b的話執行這邊
echo ' 變數 $a 小於變數 $b ';
}elseif ($a > $b){
//如果 $a 大於 $b的話執行這邊
echo ' 變數 $a 大於變數 $b ';
}else{
//都不是的話執行這邊
echo ' 變數 $a 等於變數 $b ';
}
?>
swtich case
PHP switch 有點類似 if else 組的效果 , 但是swtich效能較好 , 所以如果兩個都可以使用的話, 建議使用swtich,switch通常用在當有一個變數或表達式需要與其他的條件比較,符合哪個條件才執行的情況下使用,標準的 switch 語句至少包含多組 case 與 break 的組合,例如當一個變數丟到 switch 流程去跑,會從第一個 case 開始比較,若符合條件就執行程式碼,接著跳出 switch 語句,若不符合條件則進行下一個 case 的比較
範例
<?php
$i='蘋果';
switch ($i) {
case "蘋果":
echo "我愛蘋果";
break;
case "香蕉":
echo "我愛香蕉";
break;
case "水梨":
echo "我愛水梨";
break;
default:
echo "沒有相符合的結果";
}
//結果 : 我愛蘋果
?>
switch 與 if else 的比較
<?php
$i='1';
if($i=='0'){
echo '變數是 0';
}elseif($i=='1'){
echo '變數是 1';
}elseif($i=='2'){
echo '變數是 2';
}
switch ($i) {
case 0:
echo "變數是 0";
break;
case 1:
echo "變數是 1";
break;
case 2:
echo "變數是 2";
break;
}
//兩個結果都一樣 : 變數是 1
?>
今天講的都是比較基本的用法 ,相信聰明的你已經學會了 , 那我們下一集見~
留言
張貼留言