php -S localhost:8000
这样就在当前目录建立起了一个Web服务器,你可以通过 :8000/ 来访问。
其中localhost是监听的ip,8000是监听的端口,可以自行修改。
很多应用中,都会进行URL重写,所以PHP提供了一个设置路由脚本的功能:
复制代码 代码如下:
php -S localhost:8000 index.php
这样一来,所有的请求都会由index.php来处理。
你还可以使用 XDebug 来进行断点调试。
细节修改
PHP5.4 新增了动态访问静态方法的方式:
复制代码 代码如下:
$func = "funcXXOO";
A::{$func}();
新增在实例化时访问类成员的特征:
复制代码 代码如下:
(new MyClass)->xxoo();
新增支持对函数返回数组的成员访问解析(这种写法在之前版本是会报错的):
复制代码 代码如下:
print func()[0];
PHP5.5(2013起)
yield
yield关键字用于当函数需要返回一个迭代器的时候, 逐个返回值。
复制代码 代码如下:
function number10()
{
for($i = 1; $i <= 10; $i += 1)
yield $i;
}
该函数的返回值是一个数组:
复制代码 代码如下:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
list() 用于 foreach
可以用 list() 在 foreach 中解析嵌套的数组:
复制代码 代码如下:
$array = [
[1, 2, 3],
[4, 5, 6],
];
foreach ($array as list($a, $b, $c))
echo "{$a} {$b} {$c}\n";
结果:
复制代码 代码如下:
1 2 3
4 5 6
细节修改
不推荐使用 mysql 函数,推荐使用 PDO 或 MySQLi, 参见前文。
不再支持Windows XP.
可用 MyClass::class 取到一个类的完整限定名(包括命名空间)。
empty() 支持表达式作为参数。
try-catch 结构新增 finally 块。
PHP5.6
更好的常量
定义常量时允许使用之前定义的常量进行计算:
复制代码 代码如下:
const A = 2;
const B = A + 1;
class C
{
const STR = "hello";
const STR2 = self::STR + ", world";
}
允许常量作为函数参数默认值:
复制代码 代码如下:
function func($arg = C::STR2)
更好的可变函数参数
用于代替 func_get_args()
复制代码 代码如下:
function add(...$args)
{
$result = 0;
foreach($args as $arg)
$result += $arg;
return $result;
}
同时可以在调用函数时,把数组展开为函数参数:
复制代码 代码如下:
$arr = [2, 3];
add(1, ...$arr);
// 结果为 6
命名空间
命名空间支持常量和函数:
复制代码 代码如下:
namespace Name\Space {
const FOO = 42;
function f() { echo __FUNCTION__."\n"; }
}
namespace {
use const Name\Space\FOO;
use function Name\Space\f;
echo FOO."\n";
f();
}
您可能感兴趣的文章: