基本的语法
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 采用类似的类型推断方法。
要定义一个字符串,可以使用双引号或者单引号包裹字符串,使用单引号包裹字符串是一个良好的习惯。
定义一个数字、布尔值
//PHP
$i = 1;
$b = true;
//Objective-C
NSInteger i = 1;
BOOL b = YES;
let i = 1
let b = true
定义一个数字或布尔值,也不需要为其指定类型,PHP是弱类型语言,变量对类型不敏感。
变量的使用
要在 PHP 中使用变量,需要将美元符号也一并作为变量的一部分书写,以下是两个数值相加的例子。
//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
弱类型
由于对类型的不敏感,一个字符串变量也可以与一个数值型变量相加。
//PHP
<?php
$a = "1";
$b = 2;
$c = $a + $b;
echo $c;
运行一下,看看结果对不对?
类型的不敏感同样适用于浮点型与整型,浮点型与整型在PHP的世界里并没有明显的不同,这与 Objective-C 和 Swift 有着明显的区别。
//PHP
$a = "1.1";
$b = 2;
$c = $a + $b;
echo $c;
再运行一下?
定义一个数组
在 PHP 的世界里面, Array 和 Dictionary 都放在一起了,它叫 “数组”,是不是觉得很神奇?
<?php
$arr = [1, 2, 3, 4];
$dict = ["key"=> "value"];
虽然他们的定义方式不一样,但是,他们却是可以互相转换的……而且,由于 PHP 的类型不敏感,你可以在一个数组里面存放不同类型的Element。
PHP数组不支持泛型!
在 PHP 的世界里,数组默认都是可变的,亦即是 Mutable,你可以随时对数组增加、删除元素,并且他是线程安全的(一般来说,PHP不存在非线程安全的问题)。
在 PHP 里,数组越界的问题不会导致 Crash,但是,我仍然建议你在使用下标获取数组对象时,先检查有没有越界。
$arr[4] = 5;//添加一个元素
print($arr[9]);//不会Crash,PHP内部有数组越界检查。
我们会在后面详细地介绍PHP数组的行为
流程控制语句
if、switch、for 这些常见的流程控制语句,与 Objective-C 、 Swift 基本一致。
<?php
$arr = [1, 2, 3, 4];
if ($arr[0] == 1) {
print("OK");
}
中止语句
你可以使用 die();
或者 exit;
中止程序的执行,所有的输出都将马上返回给客户端。
结语
PHP 与 OC、Swift 在基础语法上并无太大的区别,更大的区别在于 PHP 面向对象的语法,但其实也是非常简单的。