威尼斯登录首页拉动了高达30%的进程提高和更加少的内存使用
分类:热门新闻

如下所示:
复制代码 代码如下:
 $t = new executeTime;
 phpinfo();
 class executeTime{
     private $microtime;
     public function __construct(){
         $this->microtime = microtime(true);
     }

PHP 5.4来了,这是自5.3后的又一次主版本升级。此次升级改动较为显着,删除了一些过气儿的函数,带来了高达20%的速度提升和更少的内存使用。

         public function getNow(){
                 $this->__dectruct();
         }

新特性与改动此次更新的关键新特性,包括:新增traits,更精简的Array数组语法,供测试使用的内建webserver,可以闭包使用的$this指针,实例化类成员访问,PHP 5.4.0 性能大幅提升, 修复超过100个bug. 废除了register_globals, magic_quotes以及安全模式。 另外值得一提的是多字节支持已经默认启用了,default_charset从ISO-8859-1已经变为UTF-8. 默认发送“Content-Type: text/html; charset=utf-8”,你再也不需要在HTML里写meta tag,也无需为UTF-8兼容而传送额外的header了。

     public function __destruct(){
         if (empty($_SERVER['REQUEST_TIME_FLOAT']))
             echo '本次执行时间:', microtime(TRUE) - $this->microtime, '秒<>';
         else
             echo '本次执行时间:', microtime(TRUE) - $_SERVER['REQUEST_TIME_FLOAT'], '秒<>';
     }
 }

TraitsTraits 是一组结构很像“类”的方法,它可以让开发人员在不同的类中轻松地重用方法。 PHP为单继承语言,子类只能继承一个父类,于是Traits来了。Traits的最佳应用是多类之间可以共享相同的函数。打个比方,我们要做个网站,需要使用Facebook和Twitter的APIs。我们要建 2个类,如果是以前,我们需要写一个cURL的方法并且复制/粘贴到两个类中。现在不用了,使用Traits重用代码吧,这次真正地遵循了 DRY(Don't Repeat Yourself)原则。复制代码 代码如下:/** cURL wrapper trait */trait cURL{public function curl{$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec;return $output;}}/** Twitter API Class */class Twitter_API{use cURL; // use trait herepublic function get{return json_decode($this->curl(' Facebook API Class */class Facebook_API{use cURL; // and herepublic function get{return json_decode($this->curl(' = new Facebook_API();echo $facebook->get->name; // Rasmus Lerdorf/** Now demonstrating the awesomeness of PHP 5.4 syntax */echo ->get->name;$foo = 'get';echo ->$foo->name;echo ->get('1/users/show.json?screen_name=rasmus')->name;看明白了吗?没有?那你来瞅瞅更简单的例子复制代码 代码如下:trait Hello{public function hello(){return 'Hello';}}trait Cichui{public function cichui(){return ' cichui';}}class HelloCichui{use Hello, Cichui;public function the_end(){return '!';}}$o = new HelloCichui;echo $o->hello, $o->the_end->hello->cichui->the_end();内建的Web-Sever在Web开发中,Apache HTTPD是PHP的最佳拍档。有时,你开发时用不上需要配置httpd.conf的apache大杀器,而只需要一个可以在命令行中使用的超小型 Webserver. 感谢PHP,PHP 5.4这次内建了CLI Web server。(PHP CLI webserver仅供开发使用,谢绝产品用途)举个栗子:步骤一:建立web根目录, Router和Index在硬盘根目录建立一个public_html目录,目录里新建一个router.php文件,把以下代码复制粘贴进去:复制代码 代码如下: // router.phpif (preg_match('#.php$#', $_SERVER['REQUEST_URI'])){require basename($_SERVER['REQUEST_URI']); // serve php file}else if (strpos($_SERVER['REQUEST_URI'], '.') !== false){return false; // serve file as-is}?>再来新建一个index.php文件,复制粘贴以下代码:// index.phpecho 'Hello cichui.com Readers!';?>编辑你的php.ini文件,找到”include_path”一行,把c:public_html添加进去:1include_path = ".;C:phpPEAR;C:public_html"存盘退出,看下一步

步骤二:运行Web-Server切换到php的安装目录,敲下最关键的命令—运行Web-serverphp -S 0.0.0.0:8080 -t C:public_html router.php开始了吗?不要关闭窗口,如果进程关闭Web server也跟着关闭了。打开浏览器:访问 cichui.com Readers!看到了吧?对,就是这个!提示1:你可以考虑自建一个php-server.bat的批处理,扔到桌面上以后就可以双击启动了。提示2:使用0.0.0.0而不是localhost,可以保证外网不会访问到你的web serve。

精简的Array数组语法PHP 5.4为您奉上精简的array数组语法:复制代码 代码如下:$fruits = array('apples', 'oranges', 'bananas'); // "old" way// 学Javascript的数组了$fruits = ['apples', 'oranges', 'bananas'];// 关联数组$array = ['foo' => 'bar','bar' => 'foo'];当然,旧语法依旧有效,我们多了一种选择。数组成员访问解析处理数组再也不需要临时变量了。假设我们需要获取Fang Bin Xin的middle name,echo explode[1]; // Bin

PHP 5.4之前,我们需要这样:$tmp = explode;echo $tmp[1]; // Bin现在,我们可以这样玩了:echo end(explode; // Xin再来个高级点的例子:复制代码 代码如下:function foobar(){return ['foo' => ['bar' => 'Hello']];}echo foobar()['foo']['bar']; // Hello*瓷锤注: Array dereferencing直译应为数组解除引用,效果不佳。其实更准确的翻译应为:“对函数返回结果的数组成员访问解析支持”,详见PHP官方解释。

匿名函数中的$this现在,你可以在类实例中通过$this引用一个匿名函数复制代码 代码如下:class Foo{function hello() {echo 'Hello Cichui!';}function anonymous {$this->hello(); // 之前是不可能这么玩的};}}class Bar{function __construct // object of class Foo typehint{$x = $o->anonymous(); // get Foo::hello; // execute Foo::hello; // Hello Cichui!其实以前也能将就用,就是有点费劲: function anonymous(){$that = $this; // $that is now $thisreturn function {$that->hello();};}无论php.ini中如何配置,short_open_tag, 也就是 替换以前的了。

支持二进制直接量八进制,前面加0x;二进制,现在在前面加0b就可以了echo 0b11111; // PHP 5.4支持二进制了echo 31; // 十进制echo 0x1f; // 十六进制echo 037; // 八进制

函数类型提示自PHP 5.1起,类型提示支持对象和数组,PHP 5.4开始支持callable。复制代码 代码如下:function my_function{return $x();}function my_callback_function(){return 'Hello Cichui!';}class Hello{static function hi(){return 'Hello Cichui!';}}class Hi{function hello(){return 'Hello Cichui!';}}echo my_function{return 'Hello Cichui!';}); // 闭包函数echo my_function('my_callback_function'); // 回调函数echo my_function; // 类名,静态方法echo my_function; // 类名,方法名高精度计时器此次引入了$_SERVER['REQUEST_TIME_FLOAT']数组变量,微秒级精度。对于统计脚本运行时间会非常有用:1echo 'Executed in ', round - $_SERVER['REQUEST_TIME_FLOAT'], 2)小结总之,此次PHP 5.4升级进行大量的改动。 是时候升级了。

本文由威尼斯在线注册平台发布于热门新闻,转载请注明出处:威尼斯登录首页拉动了高达30%的进程提高和更加少的内存使用

上一篇:复制代码 代码如下,//查询禁止IP 下一篇:没有了
猜你喜欢
热门排行
精彩图文