PHP——PHP基礎語法
文章目錄
程式語言常見的語法
- 變數 —— 用於臨時存放資料的容器順序結構 —— 先幹什麼再幹什麼
- 分支結構 —— 如果怎樣就怎樣否則怎樣迴圈結構 —— 不斷的做某件相同的事
- 函式 —— 提前設計好一件事怎麼幹,然後想什麼時候幹就什麼時候幹
- 運算子 —— 數學運算和字串拼接
- 字面量 —— 在程式碼中用某些字元組成,能夠表達一個具體的值 這些字元之間表示資料的方式叫做字面量
PHP 也是另外種程式語言,作為另外一種程式語言,PHP 也具備著絕大多數語言都有的特點,例如變數、條件分支、迴圈、函式等等,不同的是每個語言都會有自己的語法規定。這裡不用太過擔心,這些語法規定與之前學習的程式語言大同小異,對我們來說不會有太大的壓力。
- 變數
- 雙引號字串和單引號字串的差異
- 指令式的語法
- foreach
- 函式作用域問題
- 字串拼接
1. 變數
變數是程式語言中臨時存放資料的容器。
PHP 中申明一個變數是用一個美元符號後面跟變數名來表示。變數名同樣是區分大小寫的。PHP 中變數無需宣告型別,變數的型別根據值的型別來推斷。
<?php
$foo; // 申明一個變數,變數名為 `foo`,未對其進行賦值
$bar = 'baz'; // 申明一個變數,將一個值為 `baz` 的字串賦值給它
echo $foo; // 輸出一個變數名為 `foo` 的變數
fn($bar); // 將一個變數名為 `foo` 的變數作為 `fn` 的實參傳遞
1.1. 資料型別
常見的 PHP 資料型別與 JavaScript 基本一致:
string(字串)
integer(整型)—— 只能存整數
float(浮點型)—— 可以存帶小數位的數字
boolean(布林型)
array(陣列)
object(物件)
NULL(空)
Resource(資源型別)
Callback / Callable(回撥或者叫可呼叫型別)
字串
PHP 有多種建立字串的方式:單引號、雙引號等。
單引號字串
不支援特殊的轉義符號,例如 \n
如果要表示一個單引號字元內容,可以通過 ’ 表達如果要表示一個反斜線字元內容,可以通過 \ 表達
雙引號字串
支援轉義符號
支援變數解析
<?php
// ====== 單引號 ======
echo 'hello\nworld'; // => `hello\nworld`
echo 'I\'m a better man';
// => `I'm a better man`
echo 'OS path: C:\\Windows'; // => `OS path: C:\Windows`
// ====== 雙引號 ======
echo "hello\nworld"; // => `hello
// world`
$name = 'zce';
echo "hello $name"; // => `hello zce`
字串函式
http://php.net/manual/zh/ref.strings.php
推薦w3c school:http://www.w3school.com.cn/php/php_string.asp
陣列
PHP 中陣列可以分為兩類:
- 索引陣列
與 JavaScript 中的陣列基本一致
<?php
// 定義一個索引陣列
$arr = array(1, 2, 3, 4, 5);
var_dump($arr);
// PHP 5.4 以後定義的方式可以用 `[]`
$arr2 = [1, 2, 3, 4, 5];
var_dump($arr2);
- 關聯陣列
有點類似於 JavaScript 中的物件
<?php
// 注意:鍵只能是`integer`或者`string`
$arr = array('key1' => 'value1', 'key2' => 'value2');
var_dump($arr);
// PHP 5.4 以後定義的方式可以用 `[]`
$arr2 = ['key1' => 'value1', 'key2' => 'value2'];
var_dump($arr2);
1.2. 資料型別轉換
函式太多可以參考php手冊
參考:http://php.net/manual/zh/language.types.type-juggling.php
<?php
$str = '132';
// 將一個內容為數字的字串強制轉換為一個整形的數字
$num = (int)$str;
// 將一個數字強制轉換為布林值
$flag = (bool)$num;
2. 運算子
數學運算子,邏輯運算子與 JavaScript 基本一致,無額外特殊情況。
字串連線(拼接)採用的是比較特殊的 .
<?php
$name = 'zce';
// 拼接 `hey ` 和 `zce`
$message = 'hey ' . $name;
// 相當於 +=
$foo .= $message
3. 語句
分號分割
if、switch、while、for、 foreach、function…
4. 流程控制
順序結構
分支結構
if … else
switch … case
迴圈結構
for
while
foreach — 專門用來遍歷陣列
<?php
$arr = array('name' => 'zhangsan', 'age' => '18');
foreach ($arr as $key => $value) {
echo $key . ' ' . $value;
}
指令式的 if、for、foreach、while 單獨掌握
<?php
// 指令式就是將開始 { 換成 : 結束 } 換成 endif;
if ($i > 0) :
echo 'ok' endif;
// for foreach while 也是一樣
for ($i = 0; $i < 10; $i++) :
echo $i; endfor;
5. 函式
定義與使用函式的方式與 JavaScript 相同:
<?php
// 函式名不區分大小寫
function foo ($name, $title) {
echo "$name ($title)";
}
// 呼叫
foo('zce', 'UFO');
Foo('zgd', 'SBO'); // 大小寫不區分
注意:使用方式有點差異(函式名不區分大小寫),但是不要這麼搞!!!
建議在 PHP 中採用下劃線式(snake_case)做命名規則,不管是函式還是變數