《PHP實(shí)例:談?wù)?PHP7新增功能》要點(diǎn):
本文介紹了PHP實(shí)例:談?wù)?PHP7新增功能,希望對您有用。如果有疑問,可以聯(lián)系我們。
PHP實(shí)戰(zhàn)php7發(fā)布已有半月,最近有時(shí)間了解一下php7的新特性,當(dāng)然,這個(gè)版本最大的特點(diǎn)是性能的提升.在下并非高手,歡迎大家指出差錯,同時(shí)期待共同交流.
PHP實(shí)戰(zhàn)PHP語言一個(gè)非常重要的特點(diǎn)就是“弱類型”,它讓PHP的程序變得非常容易編寫,新手接觸PHP能夠快速上手,不過,它也隨同著一些爭議.支持變量類型的定義,可以說是革新性質(zhì)的變化,PHP開始以可選的方式支持類型定義.除此之外,還引入了一個(gè)開關(guān)指令declare(strict_type=1);,當(dāng)這個(gè)指令一旦開啟,將會強(qiáng)制當(dāng)前文件下的程序遵循嚴(yán)格的函數(shù)傳參類型和返回類型.
PHP實(shí)戰(zhàn)1.在use語句增加了group支持
PHP實(shí)戰(zhàn)use FooLibrary\Bar\Baz\{ ClassA, ClassB, ClassC, ClassD as Fizbo };
PHP實(shí)戰(zhàn)2.增加??操作符
PHP實(shí)戰(zhàn)
isset($_GET['mykey']) ? $_GET['mykey'] : ""笨重
$_GET['mykey'] ?: "" 當(dāng)mykey不存在時(shí)會報(bào)一個(gè)E_NOTICE
$_GET['mykey'] ?? 'defaultvalue' 平安不會報(bào)E_NOTICE
$username = $_GET['user'] ?? 'nobody';
PHP實(shí)戰(zhàn)3. 64位PHP7字符串長度可以超過2^31次方字節(jié).
PHP實(shí)戰(zhàn)4.增加Closure::call支持
PHP實(shí)戰(zhàn)Closure::call將一個(gè)閉包函數(shù)動態(tài)綁定到一個(gè)新的對象實(shí)例并調(diào)用執(zhí)行該函數(shù),
PHP實(shí)戰(zhàn)
<?php
class Value {
protected $value;
public function __construct($value) {
$this->value = $value;
}
public function getValue() {
return $this->value;
}
}
$three = new Value();
$four = new Value();
$closure = function ($delta) { var_dump($this->getValue() + $delta); };
$closure->call($three, );
$closure->call($four, );
?>
// outputs int(),int()
PHP實(shí)戰(zhàn)5.雙引號字符串和heredocs里面支持使用\u{xxxxx}來聲明unicode字符.
PHP實(shí)戰(zhàn)6.define對數(shù)組的支持
PHP實(shí)戰(zhàn)
define('ANIMALS', array(
'dog',
'cat',
'bird'
));
echo ANIMALS[]; // outputs "cat"
PHP實(shí)戰(zhàn)7.增加比擬運(yùn)算符<=>
PHP實(shí)戰(zhàn)$a <=> $b
如果a等于b則為0
如果a年夜于b則為1
如果a小于b則為-1
PHP實(shí)戰(zhàn)8.php全局保存字可以聲明使用
PHP實(shí)戰(zhàn)
class View {
public function include(View $view) {
//...
}
}
PHP實(shí)戰(zhàn)include關(guān)鍵字可以當(dāng)普通字符串關(guān)鍵字一樣被使用
PHP實(shí)戰(zhàn)9.標(biāo)量類型(int,float,string,bool)支持
PHP實(shí)戰(zhàn)增加declare(strict_types=1)指令聲明是否嚴(yán)格類型校驗(yàn),
當(dāng)在文件頭聲明declare(strict_types=1)
PHP實(shí)戰(zhàn)
<php
declare(strict_types=);
function add(float $a, float $b): float {
return $a + $b;
}
add(, ); // float()
PHP實(shí)戰(zhàn)以上代碼如果不開啟declare(strict_types=1)或許declare(strict_types=0),php將自動轉(zhuǎn)換參數(shù)和返回值到指定類型,
開啟declare(strict_types=1),如果參數(shù)類型不是flaot或許返回類型不是float則拋出差錯
PHP實(shí)戰(zhàn)10.增加接口為用戶層提供平安方便的隨機(jī)數(shù)生成器.RFC: https://wiki.php.net/rfc/easy_userland_csprng (后續(xù)再議)
PHP實(shí)戰(zhàn)11.增加了yield from 操作符.https://wiki.php.net/rfc/generator-delegation (后續(xù)再議)
PHP實(shí)戰(zhàn)知識是我們已知的 也是我們未知的 基于已有的知識之上 我們?nèi)グl(fā)現(xiàn)未知的 由此,知識得到擴(kuò)充 我們獲得的知識越多 未知的知識就會更多 因而,知識擴(kuò)充永無止境.
PHP實(shí)戰(zhàn)附:PHP7卓越性能背后的原理有哪些
PHP實(shí)戰(zhàn)PHP7在運(yùn)行原理上與PHP5相比并沒有變化,這與hhvm分歧.主要是基于perf性能分析工具進(jìn)行了常規(guī)性能優(yōu)化.
PHP實(shí)戰(zhàn) 減少內(nèi)存分配次數(shù),多使用棧內(nèi)存,緩存數(shù)組hash值,字符串解析成參數(shù)改為宏展開,使用大塊連續(xù)內(nèi)存代替小塊內(nèi)存等等.更細(xì)節(jié)信息請看鳥哥的PHP7分享PPT.zend引擎法式的性能提升了很多,PHP法式性能自然好了.所有的優(yōu)化都是很實(shí)在的,從細(xì)節(jié)入手積少成多.
PHP實(shí)戰(zhàn) 想方法去優(yōu)化一個(gè)有20年歷史的程序,這是一件非常有挑戰(zhàn)性的事情,比推倒重構(gòu)難度更高.世界上有80%的網(wǎng)站用PHP,使用PHP7后這些網(wǎng)站程序無太大成本就能免費(fèi)得到1倍性能提升.將節(jié)約多少CPU,節(jié)約多少電力,減少多少碳排放.另外PHP是開源項(xiàng)目,背后沒有商業(yè)公司,完全由社區(qū)運(yùn)作.使用PHP語言的開發(fā)者和企業(yè)從未向PHP官方付過一分錢.所以建議各位知友口下留德,無論您多么鄙視PHP,但請尊重別人為世界所做的付出.
PHP實(shí)戰(zhàn)以上內(nèi)容是小編給年夜家介紹的PHP7新增功能及PHP7卓越性能背后的原理,希望年夜家喜歡.
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP實(shí)例:談?wù)?PHP7新增功能》等實(shí)戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/8239.html