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_* 系列的正则函数
网友回复
python如何调用openai的api实现知识讲解类动画讲解视频的合成?
html如何直接调用openai的api实现海报可视化设计及文本描述生成可编辑海报?
f12前端调试如何找出按钮点击事件触发的那段代码进行调试?
abcjs如何将曲谱播放后导出mid和wav格式音频下载?
python如何将曲子文本生成音乐mp3或wav、mid文件
python中mp3、wav音乐如何转成mid格式?
js在HTML中如何将曲谱生成音乐在线播放并下载本地?
python如何实现在windows上通过键盘来模拟鼠标操作?
python如何给win10电脑增加文件或文件夹右键自定义菜单?
python如何将音乐mp3文件解析获取曲调数据?