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
?>


今天講的都是比較基本的用法 ,相信聰明的你已經學會了 , 那我們下一集見~

留言

這個網誌中的熱門文章

網頁入門教材目錄

什麼是HTML?

網頁是怎麼運作的呢?