<?php
/*
* 1.数组的新变化
* */
//原格式
$arr = array('a'=>0,2);
//新格式
$arr = ['a'=>0,2];
print_r($arr);
echo '<br/>';
/*
*2.匿名类
* */
class Test{
public function testa(){
echo 'testa','<br/>';
}
}
(new Test())->testa();
/*
* 3.开启了短标记
* */
$title = '呵呵哒';
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Document</title>
</head>
<body>
<h1><?=$title; ?></h1>
</body>
</html>
<?php
/*
* 4.进制
* */
echo '二进制',0b11111111,'<br/>';
echo '十进制',11111111,'<br/>';
echo '八进制',010,'<br/>';
echo '十六进制',0x16,'<br/>';
/*
* 5.PHP是单继承的语言, 5.4 Traits出现之前,PHP的类无法同时从两个基类继承属性或方法。
* php的Traits和Go语言的组合功能类似,通过在类中使用use关键字声明要组合的Trait名称,
* 而具体某个Trait的声明使用trait关键词,Trait不能直接实例化。具体用法请看下面的代码:
* */
trait Dog{
public function b(){
echo '叫','<br/>';
}
}
trait Cat{
public function c(){
echo '吃','<br/>';
}
}
class Zoon {
use Dog , Cat;
}
echo (new Zoon())->b();
echo (new Zoon())->c();
/*
* 6.支持数组提领(Array dereferencing support)
* */
function data() {
return ['name' => 'Gonzalo', 'surname' => 'Ayuso'];
}
echo data()['name'],'<br/>';
/*
* 7.通过数组间接调用方法
* */
class Human
{
public function hello(){
return 'Hi';
}
}
$f = [new Human("Gonzalo"), 'hello'];
echo $f(),'<br/>';
/*
* 8.支持 Class::{expr}() 语法
* */
foreach ([new Human('Gonzalo'), new Human('Peter')] as $human) {
echo $human->{'hello'}(),'<br/>';
}
/*
* 9.有了Array dereferencing, 以前的这种写法就再也不必要了:
*
* */
//新样式
list($name,) = explode(',', 'x,a');
echo $name,'<br/>';
//旧样式
$name = explode(',', 'a,x')[0];
echo $name;
/* 5.4的总结
1. 内存和性能改进:大型 PHP 应用程序中可节省 20-50% 的内存。通过各种优化使性能提高 10-30%
2. 支持特性Trait
3. 精简数组语法,可以定义短数组
4. 函数数组解除引用,支持Array dereferencing,
5. 实例方法调用
6. 闭包绑定
7. 对象即函数
8. 内置 Web 服务器 (CLI)
9. 原生会话处理程序接口
10. JsonSerializable 接口
11. 二进制表示法
12. 改进了错误消息
13. 数组到字符串转换通知
14. 函数类型提示的增强,(Callable typehint)
15. 对时间统计的增强,高精度计时器
16. 上传进度条Upload progress
17. Zend Signal in PHP 5.4
18. PHP 5.4 由Arnaud 引入了一个对三元式的优化方案.
* */
php5.4新特性
最新推荐文章于 2021-03-26 18:10:11 发布