基本的語法
PHP 的語法和 Swift 基本一致,但和 Objective-C 相差巨大,我將同時使用三種語言的示例去講解 PHP 的基本語法。
定義一個變量
//PHP
$str = "I'm String";
$str = 'I\'m String'; //建議使用此形式
//Objective-C
NSString *str = @"I'm String";
//swift
let str = "I'm String"
要定義一個變量,必須使用 $ 開頭,后面緊跟著變量名稱,PHP無需為變量指定它的類型,它和 Swift 采用類似的類型推斷方法。
要定義一個字符串,可以使用雙引號或者單引號包裹字符串,使用單引號包裹字符串是一個良好的習(xí)慣。
定義一個數(shù)字、布爾值
//PHP
$i = 1;
$b = true;
//Objective-C
NSInteger i = 1;
BOOL b = YES;
let i = 1
let b = true
定義一個數(shù)字或布爾值,也不需要為其指定類型,PHP是弱類型語言,變量對類型不敏感。
變量的使用
要在 PHP 中使用變量,需要將美元符號也一并作為變量的一部分書寫,以下是兩個數(shù)值相加的例子。
//PHP
$a = 1;
$b = 2;
$c = $a + $b;
echo $c
//Objective-C
NSInteger a = 1;
NSInteger b = 1;
NSInteger c = a + b;
//swift
let a = 1
let b = 1
let c = a + b
弱類型
由于對類型的不敏感,一個字符串變量也可以與一個數(shù)值型變量相加。
//PHP
<?php
$a = "1";
$b = 2;
$c = $a + $b;
echo $c;
運行一下,看看結(jié)果對不對?
類型的不敏感同樣適用于浮點型與整型,浮點型與整型在PHP的世界里并沒有明顯的不同,這與 Objective-C 和 Swift 有著明顯的區(qū)別。
//PHP
$a = "1.1";
$b = 2;
$c = $a + $b;
echo $c;
再運行一下?
定義一個數(shù)組
在 PHP 的世界里面, Array 和 Dictionary 都放在一起了,它叫 “數(shù)組”,是不是覺得很神奇?
<?php
$arr = [1, 2, 3, 4];
$dict = ["key"=> "value"];
雖然他們的定義方式不一樣,但是,他們卻是可以互相轉(zhuǎn)換的……而且,由于 PHP 的類型不敏感,你可以在一個數(shù)組里面存放不同類型的Element。
PHP數(shù)組不支持泛型!
在 PHP 的世界里,數(shù)組默認都是可變的,亦即是 Mutable,你可以隨時對數(shù)組增加、刪除元素,并且他是線程安全的(一般來說,PHP不存在非線程安全的問題)。
在 PHP 里,數(shù)組越界的問題不會導(dǎo)致 Crash,但是,我仍然建議你在使用下標獲取數(shù)組對象時,先檢查有沒有越界。
$arr[4] = 5;//添加一個元素
print($arr[9]);//不會Crash,PHP內(nèi)部有數(shù)組越界檢查。
我們會在后面詳細地介紹PHP數(shù)組的行為
流程控制語句
if、switch、for 這些常見的流程控制語句,與 Objective-C 、 Swift 基本一致。
<?php
$arr = [1, 2, 3, 4];
if ($arr[0] == 1) {
print("OK");
}
中止語句
你可以使用 die(); 或者 exit; 中止程序的執(zhí)行,所有的輸出都將馬上返回給客戶端。
結(jié)語
PHP 與 OC、Swift 在基礎(chǔ)語法上并無太大的區(qū)別,更大的區(qū)別在于 PHP 面向?qū)ο蟮恼Z法,但其實也是非常簡單的。