PHP介紹與基本語法 - 筆記長也

PHP介紹與基本語法

2018-02-06 14:18:00   PHP

介紹

PHP(PHP:Hypertext Preprocessor)是一個網站後端程式語言,具有跨平台的特性,可在Windows及Linux上運作。由於屬於動態語言,在變數與陣列的使用上比靜態語言(如JAVA)來得簡單也更方便。

基本語法

PHP的語法近似於C家族,與JAVA也幾乎大同小異,已經學過C或其他近似語言,相當容易。

PHP起始與結束

<?php /*區塊*/  ?>

PHP可以穿插於HTML標籤之中,僅有在刮起來的範圍才會被解析,但請以.php為附檔名存檔,一般情況下.html中的PHP標籤是不會被解析的。

基本輸出:print、echo

原則上2種沒有什麼差別,請看使用範例:

   echo "hi";
   print "hi";

另外一個要注意的地方,若需要串接,PHP中的串接運算子為".",是的就是一個點,而不是其他語言的"+",請記住這一點。

 

變數宣告與陣列:$a、array()

PHP較不同於其他語言,變數以"$"開頭,PHP為動態語言,與Python一樣不必事先宣告變數型態。

    $a=0;

若之後要使用變數也以"$"開頭即可。

全域變數則須在前面加上"global"字樣,如: global $a;

陣列,PHP的陣列當然可以個別給值,不再贅述。其中還提供一個"array"函式可供使用,請參考以下範例:

$array=array("a","b","c");    
$tw=array("TP"=>array("SH"=>"士林","BE"=>"北投"),"KS"=>array("NZ"=>"楠梓","YC"=>"燕巢"));

第一個僅寫內容,則索引值會自動由0往下編列,第二種則是給予索引值,索引值可以是整數也可以是字串。

判斷:IF、else、elseif

其中的"elseif"可以粘在一起,但也可以分開"else if",兩種均能使用。

    if($a==0){
        print "a=0";
    }
    elseif($a>0){
        print "a>0";
    }
    else{
        print "a<0";
    }

迴圈:for、while、foreach、do...while

除了foreach之外,其他三者很常見,不再贅述,本節僅以foreach舉例,其餘簡單解說。但請注意,其中,do...while的條件必須寫在後面的while,所以無論如何迴圈都會被執行一次。

foreach:

    foreach($array as $value){
        print $value;
    }

foreach用於陣列輸出,$array為一陣列,迴圈將$array陣列中的值分別存入暫時變數$value當中,執行完一次之後再把下一個陣列中的值存入$value當中,直到陣列結束。

for:

for(起始值;終止值;遞增)

while:

while(進入條件)

do...while:

do{    }while(進入條件);

請注意do while的while由於沒有被包在大括弧中,請記得加";"結尾語法,否則會被報錯。

常見預設變數:$_GET、$_POST、$_COOKIE、$_SESSION

$_GET[] :接收來自網址的變數,如一個網址「url.com/home.php?id=abc」,"?"之後就是URL所傳的變數,取得方式如下:

$_GET["id"];

這樣就可以取得"abc"了。

$_POST[]:取得表單所回傳的值。這個最常應用於註冊或登入等需要使用者輸入的地方,若有一input的文字輸入框的name為username,若要取得使用者在這裡輸入的內容,則方法如下:

$_POST["username"];

$_COOKIE:COOKIE則是將資料儲存於使用者端的一種變數,其宣告方式利用setcookie方法:

setcookie("cookie名稱","內容",time()+900);

若要清除則將內容清空及時間歸零即可。

$_SESSION:這個也是儲存資料,但和cookie最大的不同是儲存於伺服器端。

在需要使用session的網頁,須先加上session_start();,才能使用。其宣告方法如下:

$_SESSION["username"]=$id;

這樣成功宣告一個名為username的session變數了,清除方式則使用unset函式:

unset($_SESSION["username"]);

session最常的應用就是登入與登出的狀態,以變數的存在來判別登入狀態。cookie雖然具有類似功能,但由於存在使用者端,資料可能會被竊取的機率較高,故不建議存放敏感資料(如使用者密碼)。

結論

本文重點於常用的內容,其餘內容可以參考其他PHP的相關文章

 

關於作者


長也

資管菸酒生,嘗試成為網頁全端工程師(laravel / React),技能樹成長中,閒暇之餘就寫一些筆記。 喔對了,也愛追一些劇,例如火神跟遺物整理師,推推。最愛的樂團應該是告五人吧(?)