PHP 基礎語法教學
網頁開發此篇文章是寫給已經學習過其他程式語言的開發者,讓您能在短時間內寫出簡單的 PHP 程式碼,我知道很多時候,您學會了某種程式語言,到了新公司又要寫另一種程式語言,如果您遇到這總狀況的話,那這篇文章肯定對您有所幫助。但我並不認為用這種方式就可以把一種程式語言學好,每個程式語言都有其特性,您應該買本書花點時間來研究。
此外,非常建議大家有空沒事可多看一下官網的文件,裡面有詳細的解說,也有一些範例可以幫助大家了解有哪些好用的內建函數。
程式碼區塊
<?php
// 程式碼寫在這裡
// 建議使用的方式
?>
<script language="php">
// 程式碼寫在這裡
</script>
<?
// 程式碼寫在這裡
// 需在 php.ini 將 short_open_tag 設定為 On
// 不建議使用,易與xml混淆
?>
<%
// 程式碼寫在這裡
// 需在 php.ini 將 asp_tags 設定為 On
// 不建議使用,易與 asp 混淆
%>
- 行 4:如果下方沒有 PHP、HTML 或任何其他程式碼的話,可以省略不寫。
註解
<?php
/*
我是註解
我是註解
*/
// 我也是註解
輸出
<?php
// 輸出字串 (範例 1)
echo 'abc';
// 輸出變數 (範例 2)
// 注意單引號與雙引號
$str = 'abc';
echo '範例2: '.$str;
echo '範例2: $str';
echo "範例2: $str";
// 輸出陣列 (範例 3)
$arr = [1, 2, 3, 4, 5];
print_r($arr);
?>
=========範例 1 輸出=========
abc
=========範例 2 輸出=========
範例2: abc
範例2: $str
範例2: abc
=========範例 3 輸出=========
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
- 行 5:請注意範例 2 中單引號與雙引號的差別。
定義變數
<?php
$dog = '狗';
$one = 1;
$bool = false;
$float = 0.33;
define('const', 'abc'); // 定義常數
$obj = new Object(); // 宣告物件
$arr = array(); // 陣列初始化
$arr = []; // 陣列初始化
運算子
算術運算子
運算子 | 說明 | 運算子 | 說明 |
---|---|---|---|
+ | 加法運算 | % | 取餘數 |
- | 減法運算 | ++ | 累加 |
* | 乘法運算 | -- | 遞減 |
/ | 除法運算 |
比較運算子
運算子 | 說明 | 運算子 | 說明 |
---|---|---|---|
< | 小於 | > | 大於 |
<= | 大於或等於 | >= | 小於或等於 |
== | 等於 | != | 不等於 |
=== | 資料與資料型態完全等於 | !== | 資料與資料型態不完全等於 |
邏輯運算子
運算子 | 說明 | 運算子 | 說明 |
---|---|---|---|
&& | 並且 | || | 或者 |
! | 不 | xor | 兩邊同為true或同為false為false,否則為true。 |
其他運算子
<?php
// 三元運算子
// 範例: 當$a大於10時,$a就等於10,否則$a等於0。
$a = ($a > 10) ? 10 : 0;
// instanceof 運算子
// 範例: 判斷$obj1與$obj2資料型態是否相同
if ($obj1 instanceof $obj2) {
}
程式流程控制
判斷式
<?php
// if 判斷式
if ($animal == 'dog') {
echo 'dog';
} elseif ($animal == 'cat') {
echo 'cat';
} else {
echo 'unknown';
}
// switch 判斷式
switch ($animal) {
case 'dog':
echo 'dog';
break;
case 'cat':
echo 'cat';
break;
default:
echo 'unknown';
break;
}
迴圈
<?php
// for 迴圈
for ($i=0; $i < 10; $i++) {
}
// foreach 迴圈
foreach ($array as $key => $value) {
}
foreach ($array as $value) {
}
// while 迴圈
while ($i <= 10) {
$i++;
}
// do-while 迴圈
do {
$i++;
} while ($i <= 10);
迴圈中可以使用 break 來跳出迴圈或使用 continue 結束此次迴圈。
例外處理
<?php
try {
} catch (Exception $e) {
}
goto 陳述式 (PHP 5.3 以上支援)
<?php
goto a;
echo 'aaa';
a:
echo 'bbb';
- 行 2:goto 陳述式會直接跳轉到行 4 的位置,因此以上範例會輸出 bbb,並不會輸出 aaa。不過不建議太常使用此功能,用太多只會讓程式碼的邏輯運行變得很混亂,大部分的狀況都可以使用其他方式來替換掉 goto 陳述式。
陣列
<?php
// 空陣列
$arr1 = array();
$arr1 = [];
// 宣告賦值
$arr2 = array('狗', '貓', '牛');
$arr2 = ['狗', '貓', '牛'];
// 自訂索引
$arr3 = array('dog' => '狗', 'cat' => '貓', 'cow' => '牛');
$arr3 = ['dog' => '狗', 'cat' => '貓', 'cow' => '牛'];
// 多維陣列
$arr3 = array(array('one', 'two'), array('three', 'four'));
$arr3 = [['one', 'two'], ['three', 'four']];
常用陣列處理函數
<?php
count($arr); // 計算 $arr 個數
asort($arr); // 將 $arr 根據 value 排序
ksort($arr); // 將 $arr 根據 key 排序
array_keys($arr); // 返回 $arr 陣列中的 key 值陣列
array_values($arr); // 返回 $arr 陣列中的 value 值陣列 (key 值會從 0 開始)
in_array('first', $arr); // 判斷 $arr 陣列中,有無 value = first
array_key_exists('first', $arr); // 判斷 $arr 陣列中,有無 key = first
array_search('first', $arr); // 搜尋 $arr 陣列中,value = first 的 key 值
array_column($arr, 'first') // 取得 $arr 陣列中,key = first 的 value 值陣列
array_combine($keyArr, $valueArr) // 建立一個陣列,用 $keyArr 作為 key 值,用 $valueArr 作為 value 值
常用字串處理
<?php
substr('abcdefg', 1, 3); // 字串擷取
str_replace('a', 'a', 'abcdefg'); // 字串取代
strlen('abcdefg'); // 字串長度
mb_strlen('一二三'); // 字串長度 (中文)
trim('abcdefg') // 清除字串前後空白
strtolower('abcdefg') // 將字串轉換為小寫。
strtoupper('abcdefg') // 將字串轉換為大寫。
ucfirst('abcdefg') // 將首字字母轉成大寫。
方法
<?php
// 呼叫方法
outputStr('abc');
// 定義方法
function outputStr($str) {
echo $str;
return true;
}
類別
<?php
class Math extends Object implements imp1, imp2 { //繼承與實作介面
const PI = 3.14; // 宣告靜態變數
private $sum = 0; // 宣告一般變數
public function __construct() { // 建構方法
parent::__construct(); // 執行父類別建構方法
$sum = $this->sum; // 取得類別屬性
$this->add(); // 執行類別方法
}
public function add() {} // 一般方法
public static function abs(} // 靜態方法
}
// 使用物件
$math = new Math(); // 宣告類別
$math->add(); // 呼叫類別方法
$math::abs(); // 呼叫靜態方法
PHP檔案名稱不需要與類別名稱相同,如果要在其他檔案使用類別的話,只需要使用以下方式引入:
<?php
require_once('Math.php'); // 先載入類別檔案
$math = new Math(); // 宣告類別
Cookie 與 Session
<?php
// 使用 SESSION 時要先啟動
// 啟動之前不能有任何的輸出
session_start();
$_SESSION['a'] = '123'; // 設定 SESSION
echo $_SESSION['a']; // 輸出 SESSION
unset($_SESSION['a']); // 銷毀 SESSION
$_COOKIE['a'] = '123'; // 設定 COOKIE
echo $_COOKIE['a']; // 輸出 COOKIE
unset($_COOKIE['a']); // 銷毀 COOKIE
php session 詳細的運作方式可參考以下文章:
POST 與 GET
<?php
echo $_POST['A']; // 取得 POST 變數
echo $_GET['A']; // 取得 GET 變數
// 避免錯誤訊息的寫法
// 方法1: 先檢查資料是否存在
$a = isset($_POST['A']) ? $_POST['A'] : '預設值';
$a = array_key_exists('A', $_POST) ? $_POST['A'] : '預設值';
// 方法2: 使用PHP內建的filter_input方法
$a = filter_input(INPUT_POST, 'A');
$a = filter_input(INPUT_GET, 'A');
熱門文章
最新文章
0 則留言