電商項(xiàng)目day7-2017年2月25日php新特性_第1頁
電商項(xiàng)目day7-2017年2月25日php新特性_第2頁
電商項(xiàng)目day7-2017年2月25日php新特性_第3頁
電商項(xiàng)目day7-2017年2月25日php新特性_第4頁
電商項(xiàng)目day7-2017年2月25日php新特性_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、新特性54重點(diǎn)在54 版本里面的里面的數(shù)組的寫法可以寫成類似這樣的簡便$arr = array(12, 45);簡化版:$arr1 = 12, 45;55一、概念:提供了一種簡單的方式實(shí)現(xiàn)數(shù)據(jù)的可迭代,比使用迭代器 Iterator 更容易function gen()for ($i = 1; $i $4; $i +) yield $i;foreach(gen() as $value) echo $value ._EOL;以上例子將輸出 1, 2, 3;二、異常和 finally 關(guān)鍵字概念:進(jìn)行異常捕獲,無論是否發(fā)生異常,finally 中的代碼始終會被執(zhí)行。try 拋出異常 catch (E

2、xception $e) 拋出異常 finally 出現(xiàn)異常后的收尾工作。三、foreach 和list()概念:使用 list 對 foreach 出的元素進(jìn)行拆分$data = 1, 2,3, 4,;foreach ($data as list($one, $two) echo one: $one, two: $two ;輸出one: 1, two: 2one: 3, two: 4四、empty 和任意表達(dá)式概念:empty 中可傳入任意合法的表達(dá)式五、數(shù)組和字符串直接表達(dá)式概念:在數(shù)組和字符串直接表達(dá)式上可直接進(jìn)行獲取其中的元素1,2,3,4,50“This is an string”0

3、六、新的加密函數(shù) password_hash()概念:不需要手動管理生成時的鹽值和算法,兼容 bcrypt驗(yàn)證使用 password_verify();$password = “password”;$passwordHash = password_hash($password);if (password_verify(password, $hash) echo 有效!; else echo 無效;56一、使用表達(dá)式定義常量、變量、參數(shù)默認(rèn)值概念:可以在使用和定義常量時對常量進(jìn)行簡單的運(yùn)算const ONE = 1;const TWO = ONE * 2;class C const THREE

4、= TWO + 1;const ONE_THIRD = ONE / self:THREE;consTENCE = The value of THREE is .self:THREE;public function f($a = ONE + self:THREE) return $a;echo (new C)-f().n;echo C:SENTENCE;二、可變參數(shù)個數(shù)“”概念:可以使用接收數(shù)量不固定的參數(shù)和傳遞數(shù)量不固定的參數(shù)2.1. 形參function test($a, $b, $args)var_dump($args);test(1, 2, 3, 4, 5);輸出: 3, 4, 52.2

5、. 實(shí)參function test($a, $b, $args)test1($args);function test1($a, $b, $c) var_dump($a, $b, $c);test(1, 2, 3, 4, 5);輸出: 3, 4, 5三、數(shù)字的次方操作(冪運(yùn)算)*概念:提供簡化的次方操作2 的 5 次方:2 * 2 * 2 * 2 * 2簡化的操作: 2 * 5四、導(dǎo)入常量和函數(shù)概念:以前只能導(dǎo)入另一個空間中的類,現(xiàn)在支持導(dǎo)入另一個空間中的常量和函數(shù)namespace NameSpace const FOO = 42;function f() echo FUNCTION .n;

6、namespace use const NameSpaceFOO;use function NameSpacef;echo FOO.n;f();70一、類型嚴(yán)格模式【重點(diǎn)】概念:提供指定參數(shù)類型和返回值類型的,類似C+等強(qiáng)類型語言,可以提高代碼執(zhí)行效率開啟嚴(yán)格模式:declare(strict_types=1);可選類型:類型釋義類名/接口名array數(shù)組callable可被調(diào)用,包括:函數(shù)、閉包函數(shù)、實(shí)現(xiàn)了 invoke()的類bool類型,true falsedeclare(strict_types=1);function sum($a, float $b): float return $

7、a + $b;二、null 合并運(yùn)算符和運(yùn)算符【重點(diǎn)】概念:簡化 isset($variable) ? $variable : 其他值 和比較操作的寫法isset($variable) ? $variable : 其他值 簡寫為:$variable ? 其他值$a 和 $b 比較,相等返回 0, $a 大于 $b 返回 1, $a 小于 $b 返回 -1 簡寫為:$a $b三、定義數(shù)組常量概念:可以將簡單數(shù)組定義為常量define(ANIMALS, dog,float浮點(diǎn)型:3.1415整形:1, 2, 3, 4string字符串型:”string”cat,bird);echo ANIMALS

8、1; / 輸出 cat四、類概念:可以定義類,實(shí)現(xiàn)用后即銷毀的類。$obj = new class public $name = ;public $age = 20;var_dump($obj);輸出:object(classanonymous)#1 (2) name= string(6) age=(20) 五、unicode 轉(zhuǎn)義語法概念:可以通過雙引號轉(zhuǎn)義 unicode 編碼為對應(yīng)的字符echo u9999;輸出:香六、Closure:call()概念:使得閉包函數(shù)能夠接觸到一個對象的$this設(shè)置閉包函數(shù)的上下文# 定義一個用于測試的類class A private $x = 1;#

9、老寫法$getXCB = function() return $this-x;$getX = $getXCB-bindTA);echo $getX();# 新寫法:$getX = function() return $this-x;echo $getX-call(new A);輸出:1;七、unserialize()限定類概念:限定對象被反序列化時使用的類,避免潛在的代碼注入。不允許任何類,將為plete_Class 類的對象$data = unserialize($foo, allowed_classes = false);允許特定的類,不在列表中將為plete_Class 類的對象$dat

10、a = unserialize($foo, allowed_classes = MyClass, MyClass2);允許所有類$data = unserialize($foo, allowed_classes = true);八、lChar 類lChar:ord();lChar:chr();九、斷言和異常概念:斷言(Assert)現(xiàn)在已經(jīng)是一個語法結(jié)構(gòu),速度更快,同時支持拋出自定義錯誤ini_set(assert.exception, 1);class CustomError extends AssertionError assert(false, new CustomError(Some

11、error message);十、命名空間成員批量導(dǎo)入概念:批量從另一個空間中導(dǎo)入類、函數(shù)和常量use somenamespaceClassA, ClassB, ClassC as C;批量導(dǎo)入空間 somenamespace 的類 ClassA, ClassB, ClassCuse function somenamespacefn_a, fn_b, fn_c;批量導(dǎo)入空間 somenamespace 中的函數(shù)fn_a, fn_b, fn_cuse const somenamespaceConstA, ConstB, ConstC;批量導(dǎo)入空間 somenamespace 中的常量ConstA

12、, ConstB, ConstC十一、返回值和委托概念:可以有返回值了,可以返回另一個# 獲取的返回值$gen = (function() yield 1;yield 2;return 3;)();foreach ($gen as $val) echo $val,_EOL;echo $gen-getReturn(),_EOL;返回另一個#function gen()yield 1;yield 2;# 在當(dāng)前中返回另一個yield from gen2();function gen2()yield 3;yield 4;foreach (gen() as $val)echo $val,_EOL;十二

13、、整數(shù)相除,取模:div()概念:簡化整數(shù)相除操作原寫法:floor(10/3);新寫法:div(10, 3);十三、ses_start()覆蓋配置文件配置ses_start(cache_limiter = private,read_and_close = true,);十四、捕獲錯誤function call_method($obj)$obj-method();#產(chǎn)生錯誤try call_method(); catch (Error $e) var_dump($e);結(jié)果:71一、可為空的類型語法:?類型?string?arrayfunction test(?string $name)var

14、_dump($name);test(null);二、 函數(shù)void 返回值function swap(&$left, &$right) : voidif ($left = $right) return;$tmp = $left;$left = $right;$right = $tmp;$a = 1;$b = 2;var_dump(swap($a, $b), $a, $b);注意:* null 不是void, return;是返回空,return null;是返回 null,返回值不同。三、 iterable 類型四、多異常捕獲try / some code catch (Exception |

15、 SecondException $e) / handleand second exceptions五、字符串取負(fù)數(shù)下標(biāo)abcdef-2六、將callable 轉(zhuǎn)為 Closureclass Testpublic function exeFunction()return Closure:fromCallable($this, privateFunction);private function privateFunction($param)var_dump($param);$privFunc = (new Test)-exeFunction();$privFunc(some value);七、數(shù)組短內(nèi)從另一數(shù)組中變量$data = name =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論