一、一些重要的php版本
php 5.0引入物件導向
php5.3 引入命名空間
php7.0 效能優化
二、hhvm和hack
hhvm本質上是乙個虛擬機器,將php**轉化為php位元組碼 ,大幅度提公升效能。
就是作用類似用zend引擎,但是hhvm支援php和hack兩種語言。
hack相對於php,最顯著的區別在於提供了靜態型別的支援。
所以建議開發採用php7.0!!!
demo1:對應型別提示
<?php
// 強制型別宣告為開啟狀態
// 當型別不一致時,程式報錯
declare(strict_types=1);
// before php7
function test(array $arr)
}inte***ce payinte***ce
class alipay implements payinte***ce
}function test2(payinte***ce $paymethod)
// 類的例項物件 is instanceof 介面名
demo:匿名類
<?php
// 匿名類
生成器yield
(一)可以大大減少記憶體的消耗
(1)傳統形式
echo memory_get_usage(),"\n";
$arr = range(1,1000000000);
echo memory_get_usage(),"\n";
(2)使用生成器
<?php
function xrange($start, $end)
}// 普通陣列形式
echo memory_get_usage(), "\n";
$arr = range(1, 10000);
// $arr = xrange(1, 10000);
// var_dump($arr);exit;
foreach ($arr as $key => $value)
echo memory_get_usage(), "\n";
(二)時間開銷yield沒有原生形式好。
<?php
function xrange($start, $end)
}// 普通陣列形式
echo time(), "\n";
// $arr = range(1, 1000000);
$arr = xrange(1, 1000000);
foreach ($arr as $key => $value)
echo time(), "\n";
(三)為什麼時間慢,節省空間?
yield 返回的是迭代器物件不是陣列,所以佔據記憶體空間小。
(四)防範記憶體溢位
<?php
// 獲取所有資料
// 普通方法
$sql = "select * from news";
$results = mysqli_query($sql);
while ($row = mysqli_fetch_assoc($results))
// 改進yield方式
function getallrecords()
}$rs = getallrecords();
foreach ($rs as $value)
(五)協程工作
詳見參考手冊
php7的新特性
截止到目前為止,php官方已經發布了php7的rc5版本,預計在11月份左右會發布第乙個正式版本!現在來說php7的重大特性肯定已經是定型了,不會再有什麼變動了。後續一些版本的迭代主要也就是修修bug,優化之類的。下面就來說話我們一直期待的php7.0新特徵吧。1.標量引數型別宣告 現在支援字串 s...
PHP 7 的新特徵
我們知道php是一種弱型別的程式語言,因此沒有提供任何方法來指定輸入引數和返回值的型別,php7突破了這種現狀,增加了對標量型別 int,float,string,bool 的宣告支援,增加declare strict types 1 指令宣告是否嚴格型別校驗,我們來看一段 declare stri...
PHP7 常用新特性
1.標量型別宣告 php是一種弱型別的程式語言,因此沒有提供任何方法來指定輸入引數和返回值的型別,php7突破了這種現狀,增加了對標量型別 int,float,string,bool 的宣告支援,增加declare strict types 1 指令宣告是否嚴格型別校驗,來看一段 declare s...