PHP5.4新特性(转)
PHP5.4正式前两天发布了,之前有看了一些PHP5.4主要特性相关文章,因此在这里小结一下。
其中好几点更新是由Laruence贡献的!本文部分内容也是源自Laruence的博客。
1. Buid-in web server
PHP5.4内置了一个简单的Web服务器,这样在做一些简单程序就方便多了,省去了环境配置的工作,特别对于初学者来说。
把当前目录作为Root Document只需要这条命令即可:
1
|
$ php -S localhost:3300
|
也可以指定其它路径:
1
|
$ php -S localhost:3300 -t /path/to/root
|
还可以指定路由:
1
|
$ php -S localhost:3300 router.php
|
参考:PHP: Build-in web server
2. Traits
Traits提供了一种灵活的代码重用机制,即不像interface一样只能定义方法但不能实现,又不能像class一样只能单继承。至于在实践中怎样使用,还需要深入思考。
官网的一个例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
trait SayWorld {
public function sayHello() {
parent::sayHello();
echo "World!\n" ;
echo 'ID:' . $this ->id . "\n" ;
}
}
class Base {
public function sayHello() {
echo 'Hello ' ;
}
}
class MyHelloWorld extends Base {
private $id ;
public function __construct() {
$this ->id = 123456;
}
use SayWorld;
}
$o = new MyHelloWorld();
$o ->sayHello();
/*will output:
Hello World!
ID:123456
*/
|
参考:http://cn.php.net/manual/en/language.oop5.traits.php
3. Short array syntax
PHP5.4提供了数组简短语法:
1
|
$arr = [1, 'james' , 'james@fwso.cn' ];
|
4. Array dereferencing
1
2
3
|
function myfunc() {
return array (1, 'james' , 'james@fwso.cn' );
}
|
我认为比数组简短语法更方便的是dereferencing,以前我们需要这样:
1
2
|
$arr = myfunc();
echo $arr [1];
|
在PHP5.4中这样就行了:
1
|
echo myfunc()[1];
|
5. Upload progress
Session提供了上传进度支持,通过$_SESSION["upload_progress_name"]就可以获得当前文件上传的进度信息,结合Ajax就能很容易实现上传进度条了。
参考:http://www.laruence.com/2011/10/10/2217.html
6. JsonSerializable Interface
实现了JsonSerializable接口的类的实例在json_encode序列化的之前会调用jsonSerialize方法,而不是直接序列化对象的属性。
参考:http://www.laruence.com/2011/10/10/2204.html
7. Use mysqlnd by default
现在mysql, mysqli, pdo_mysql默认使用mysqlnd本地库,在PHP5.4以前需要:
1
|
$. /configure --with-mysqli=mysqlnd
|
现在:
1
|
$. /configure --with-mysqli
|
8. 更多
http://cn2.php.net/releases/NEWS_5_4_0_beta2.txt
PHP5.4新特性(转)相关推荐
- PHP5.3, PHP5.4, PHP5.5新特性
因为用到PHP新版本,一些新特性必须要了解,且有些可以在开发时就使用,如果不使用,那么何必升级PHP版本呢,显得有些得不偿失了! 所以整理了一下 一些特性,有可能不全,待添加 PHP 5.3中的新特性 ...
- [转] php5.3 PHP5.4 PHP5.5 新特性/使用PHP5.5要注意的
因为用到PHP新版本,一些新特性必须要了解,且有些可以在开发时就使用,如果不使用,那么何必升级PHP版本呢,显得有些得不偿失了! 所以整理了一下 一些特性,有可能不全,待添加 PHP 5.3中的新特性 ...
- PHP7相对于PHP5的新特性,学习猿地-整理PHP5.5 ~ PHP7.2 新特性
PHP5.5 ~ PHP7.2 新特性整理 一.从PHP 5.5.x 移植到 PHP 5.6.x 使用表达式定义常量 在之前的 PHP 版本中, 必须使用静态值来定义常量,声明属性以及指定函数参数默认 ...
- php static与self,PHP5.3新特性static与self区别
很多人都说,PHP 简单,入门门槛较低,但是要学精通确很难.随着 PHP 不断的发展,新特性不断的增加,同时又得兼容老版本 PHP4 的一写语法特征,初学者在学习 PHP 时,显然就不再那么容易了.特 ...
- php 5.6 新特性,PHP5.6新特性介绍
本文将介绍这些特性,并讨论它们可以给开发者带来哪些好处. 常量标量表达式(Constant scalar expressions) 在常量.属性声明和函数参数默认值声明时,以前版本只允许常量值,PHP ...
- php phar包require报错,被遗忘的PHP5.3新特性——Phar
看样子phar应该是山寨jar的吧,不过方便的确是方便许多.使用phar打包PHP代码的话,就可以直接在网上下载phar包,然后像这样直接运行他! $ php foo.phar 我在本地自己做了个测试 ...
- PHP 5.3-5.5 新特性
PHP5.3, PHP5.4, PHP5.5新特性 因为用到PHP新版本,一些新特性必须要了解,且有些可以在开发时就使用,如果不使用,那么何必升级PHP版本呢,显得有些得不偿失了! 所以整理了一下 一 ...
- php yield 个人小解_PHP5.5新特性之yield理解与用法实例分析
本文实例讲述了PHP5.5新特性之yield理解与用法.分享给大家供大家参考,具体如下: yield生成器是php5.5之后出现的,yield提供了一种更容易的方法来实现简单的迭代对象,相比较定义类实 ...
- two+few+arguments+php,PHP5.5 ~ PHP7.2 新特性整理
PHP5.5 ~ PHP7.2 新特性整理 一.从PHP 5.5.x 移植到 PHP 5.6.x 使用表达式定义常量 在之前的 PHP 版本中, 必须使用静态值来定义常量,声明属性以及指定函数参数默认 ...
最新文章
- python快速编程入门课后程序题答案-Python编程从零基础到项目实战 完整PPT+习题答案...
- Java NIO学习系列七:Path、Files、AsynchronousFileChannel
- 51单片机复习:DS1302
- Introduce Null Object(引入Null 对象)
- IOC操作Bean管理XML方式(注入空值和特殊符号)
- 95-230-026-源码-WordCount走读-本地运行SubmitJob的过程
- 02-C#入门(枚举、结构等)
- 18. web robot
- python写出雷霆战机_大一新生苦心研学Java半个月,独立写出雷霆战机到处自诩天才!牛...
- fid fopen MATLAB
- 中职学校计算机教学参考文献,中职计算机教学论文
- mysql使用结巴语句_MySQL 结巴中文分词插件 SqlJieba
- 2021年中国企业风险投资发展现状及未来发展趋势分析[图]
- 二战计算机技术,重庆大学超强二战跨考计算机技术专业经验,学习方法
- 做国内最好的考勤软件,领航软件被评为2007中国软件创新100家典型企业
- pdf文件如何生成目录 wps_wps制作pdf文档的详细方法
- 免杀的N种姿势-msf篇
- QT中获取选中的radioButton的两种方法
- 整理的子模块设置清单
- 2022.3.11 MATLAB课程作业