注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

享受编码

    的乐趣

 
 
 

日志

 
 

php5.3新特性  

2011-05-31 16:58:11|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1、引入 __DIR__ magic常量 定位脚本的目录
<?
echo __DIR__."|".dirname(__FILE__);
?>
2、允许从2个值的or/and表达式快速的获取一个非空的值
<?
echo (1 ?: 0) ."|". ("" ?: 0)."|". var_export(array() ?: array(1), true);
?>
3、类添加__callStatic方法,等价于 __call(),但它是为调用静态方法准备的。下面来看示例:
<?
class xxx{
function
__call($func, $args){
echo
"function name:".$func;
echo
"</br />";
echo
"args:".var_export($args, true);
}
static function
__callStatic($func, $args){
echo
"static function name:".$func;
echo
"</br />";
echo
"static args:".var_export($args, true);
}
}
$x = new xxx();
$x->testfunc("oo");
echo
"</br />";
xxx::teststatic("xx");
?>
4、动态的调用静态的方法
<?
class xx{
static function
test(){
echo
__METHOD__;
}
}
$c = "xx";
$m = "test";
$c::$m();
?>
5、延迟静态绑定(静态处理从编译时延迟到执行时)
<?
class A{
static function
whoami(){
echo
__CLASS__;
}

static function
say1(){
self::whoami();
}

static function
say2(){
static::
whoami();
}
}

class
B extends A{
static function
whoami(){
echo
__CLASS__;
}
}

class
C extends A{
static function
whoami(){
echo
__CLASS__;
}
}

B::say1();
C::say2();
?>
6、MySQLInd (高速的专门为PHP设计的MySQL调用库接口)
7、INI Magic
8、扩展的 OpenSSL 函数
9、SPL(Standard PHP Library) 优化
10、时间处理进行扩展了和添加
<?
$date
= strtotime("11-05-17 00:00:00");
echo
date("Y-m-d", $date)."|";

$date = date_create_from_format("y-m-d", "11-05-17");
echo
$date->format("Y-m-d");
?>
11、垃圾回收器(为复杂和长时间运行脚本的执行结束周期释放内存的清理)
<?
gc_enable
(); // 允许垃圾回收
var_dump(gc_enabled()); // true

var_dump(gc_collect_cycles()); // 某个元素的清理

gc_disable(); // 禁止垃圾回收
?>
12、NOWDOC(不对HEREDOC进行转译)
<?
$fubar
= "xxx";

$xbar = <<<ONE
this is HEREDOC $fubar
ONE;

$abar = <<<'TWO'
this is NOWDOC
$fubar
TWO;
echo
$xbar."|".$abar;
?>
13、匿名函数体验
<?
$ofun
= create_function('$a, $b', 'return $a*$b;'); //不要忘了分号,传统方法
echo $ofun(2, 5);

$nfun = function ($a, $b){
return
$a*$b;
};
//不要忘了分号,现代方法

echo $nfun(3, 5);
?>
14、闭包体验
<?
$arr
= array(1, 2, 3, 5, 6, 7);
$res = array_filter($arr, function($v) { return $v >4; });
var_dump($res);

function
countnum(){
$num = 0;
$testt = function() use(&$num){
++
$num;
echo
$num;
};
return
$testt;
}

$t = countnum();
$t();
$t();
?>
15、命名空间
<?
namespace xxx; //第一个namespace需要在所有输出之前
function t(){
return
__NAMESPACE__;
}

namespace
xxx;

function
t(){
return
__NAMESPACE__;
}

echo \
xx\t()."|";
echo \
xxx\t();
?>
  评论这张
 
阅读(360)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017