PHP7有更多的新特性,更好的性能,更高的速度,PHP7比PHP5.0性能提升了两倍。
那么php7相对于php5新增了哪些特性,同时移除了哪些api呢
新增了
1、新增了强类型模式。
<?php就进入严格模式,参数必须符合规定(必须传入指定数据类型的值),不然报错。
declare(strict_types=1);
2、新增了null合并运算符。
<?php
//php 7+这样写
$username = $user ?? 'nobody';
//php version < 7 得这样使用:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
3、新增加了结合比较运算符。
<?php
// Integers
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// Floats
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// Strings
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
4、新增加了函数的返回类型声明。
<?php
function returnInfo ($a) : array {
return $a;
}
var_dump(returnInfo([1,2,3]));
5、新增加了通过define()定义常量数组。
<?php
define ('AWS' , [12,33,44,55]);
6、新增加匿名类。
<?php
interface Logger {
public function log(string $msg);
}
class Application {
private $logger;
public function getLogger(): Logger {
return $this->logger;
}
public function setLogger(Logger $logger) {
$this->logger = $logger;
}
}
$app = new Application;
$app->setLogger(new class implements Logger {
public function log(string $msg) {
echo $msg;
}
});
var_dump($app->getLogger());
移除了
1、移除了 mysql 扩展。
2、移除了一些老的不在支持的SAPI(服务器端应用编程端口)和扩展。
3、移除了PHP4 风格的构造函数,PHP4 风格的构造函数(方法名和类名一样)将被弃用,并在将来移除。 如果在类中仅使用了 PHP4 风格的构造函数,PHP7 会产生 E_DEPRECATED 警告。 如果还定义了 __construct() 方法则不受影响。
<?php
class foo {
function foo() {
echo 'I am the constructor';
}
}
?>
4、废弃了 静态(Static) 调用未声明成 static 的方法,未来可能会彻底移除该功能。
<?php
class foo {
function bar() {
echo 'I am not static!';
}
}
foo::bar();
?>
以上例程会输出:
5、废弃了 password_hash() 函数中的盐值选项,阻止开发者生成自己的盐值(通常更不安全)。 开发者不传该值时,该函数自己会生成密码学安全的盐值。因此再无必要传入自己自定义的盐值。
capture_session_meta SSL 上下文选项
废弃了 capture_session_meta 内的 SSL 上下文选项。 现在可以通过 stream_get_meta_data() 获取 SSL 元数据(metadata)。
6、LDAP 中的废弃以下函数已被废弃:ldap_sort()
7. 移除了ereg_* 系列的正则函数
网友回复