PHP5.3的新特性介绍,转自:http://www.quou.cn/

本文介绍了PHP的多项新特性,包括使用__DIR__常量定位脚本目录、通过or/and表达式快速获取非空值、类中新增的__callStatic方法、动态调用静态方法、延迟静态绑定、MySQLnd调用库接口、INIMagic、SPL优化、时间处理扩展、垃圾回收机制、NOWDOC不转译功能、匿名与闭包函数的应用、以及命名空间的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

staticfunction
say1(){
self::whoami();
}

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

class
BextendsA{
staticfunction
whoami(){
echo
__CLASS__;
}
}

class
CextendsA{
staticfunction
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-1700: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
thisisHEREDOC$fubar
ONE;

$abar=<<<'TWO'
thisisNOWDOC
$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、命名空间
<?
namespacexxx;//第一个namespace需要在所有输出之前
functiont(){
return
__NAMESPACE__;
}

namespace
xxx;

function
t(){
return
__NAMESPACE__;
}

echo\
xx\t()."|";
echo\
xxx\t();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值