這篇我們要開始寫第一隻PHP程式了
PHP其實跟JS差不多
也同樣是弱型別
所以只要JS熟,PHP的一些基礎語法也絕對難不倒
先來講解幾個重點
ㄧ.
PHP的程式碼必須要這樣子
<?php 程式碼... ?>
這跟JS是一樣的,都需要用標籤包住
二.
檔名必須要是.php
三.
寫好的程式碼要放在伺服器的預設目錄中
1. 第一隻PHP
OK~那麼就來寫程式吧
範例:
<html>
<head>
</head>
<body>
<?php
echo "<span style='color:red;'>HELLO~WORD!!!</span>";
?>
</body>
</html>
寫完程式碼後
在伺服器的預設目錄中開一個名為test的資料夾
把程式碼儲存成index.php
之後在瀏覽器打上 localhost/test/index.php
應該會出現跟我一樣的畫面
在程式碼中有出現一個關鍵字 echo
echo 其實跟JS中的 document.write 是一樣的
其中的差別是
開啟網頁原始碼後會發現JS寫的 document.write 會出現
但是PHP的 echo 卻不會出現
範例2:
<html>
<head>
</head>
<body>
<?php
echo "<span style='color:red;'>HELLO~WORD!!!</span>";
?>
<br />
<script type="text/javascript">
document.write("<span style='color:red;'>HELLO~WORD!!!</span>");
</script>
</body>
</html>
這也就是伺服器端和客戶端的差別之一
伺服器端會把PHP標籤內的所有東西都運作完後才把所有原始碼回應給客戶端
但是程式碼中的JS語法卻是瀏覽器要執行的
所以JS語法在客戶端是無法隱藏的
這麼一來我可以利用瀏覽器的中控台把JS的變數內容改掉
讓客戶端傳不正確的資料給伺服器端
這時候伺服器端如果沒有做出一些防範
很容易就被人入侵或攻擊
永遠永遠不要相信從客戶端傳來的東西 ← 這句話一樣很重要
PS php跟JS一樣有程式的結束符號 ";" ,不要忘記加上去
2.變數
前面有提過
PHP也是弱型別語言
所以不需要先宣告變數型態
伺服器會自動去判斷
在JS中的用法是 var 變數名 = 內容;
但是在PHP中只要 $變數名 = 內容;
變數前面一定要是金錢符號
這是關鍵字!!!
範例:
<?php
$str = "<span style='color:red;'>HELLO~WORD!!!</span>";
?>
<html>
<head>
</head>
<body>
<?php
echo $str;
?>
</body>
</html>
執行後出來的結果跟第一個其實是一樣的
但是寫法有一些不一樣
我在最前面宣告了一個變數
才在body中 echo 變數
3.變數型態
剛剛說宣告變數不需要型態,伺服器會自己判斷
但是如果我們要知道變數目前的型態呢??
在PHP中有以下的型態
整數型態(Integer)
字串型態(String)
浮點數(Float)
物件(Object)
陣列(Array)
資源(resource)
布林值(boolean)
空(Null)
裡面比較奇特的是一種叫做 資源 的型態
依據PHP手冊上說,資源是一種特殊的變量類型,保存了到外部資源的一個引用:如打開文件、資料庫連接等。
資源中的所有東西可以到這個網站查詢
http://www.php.net/manual/en/resource.php
如果要確定變數型態
可以使用 gettype 函式
語法:
gettype(變數);
範例:
<html>
<head>
</head>
<body>
<?php
echo gettype(123).'<br>';
echo gettype(' ').'<br>';
echo gettype(1.23).'<br>';
echo gettype(new stdclass()).'<br>';
echo gettype(array()).'<br>';
echo gettype(true).'<br>';
echo gettype($a).'<br>';
?>
</body>
</html>
資源好像測不出來
echo gettype($a).'<br>';
因為我$a沒有宣告,所以測出來的是NULL
另外有幾個差不多功能的函式
is_array()
is_bool()
is_float()
is_int()
is_null()
is_object()
is_string()
有空就查查資料玩玩看吧
PS PHP中組合字串是用 . 不是跟JS一樣是用 +
就先講解到這邊
往後幾篇就會開始講解一些基本的語法
迴圈 邏輯判斷 ....等等
相信對大家不會有甚麼困難
因為觀念通,就只差熟悉語法了