PHP7匿名類用法分析
本文實例講述了PHP7匿名類用法。分享給大家供大家參考,具體如下:
匿名類跟匿名函數(shù)一樣,創(chuàng)建一次性的簡單對象
<?php /** * Created by PhpStorm. * User: bee * Date: 2016/4/24 * Time: 00:17 */ echo '匿名函數(shù)'; $anonymous_func = function(){return 'function';}; echo $anonymous_func(); echo '<br>'; echo '<hr>'; class common { public $default = 10; function __construct($key){ $this->getVal($key); } public function getVal(int $i):int{ $this->default += $i; return $this->default+0.1; } } echo '有名函數(shù)';echo '<br>'; $com = new common(1); echo $com->getVal(2.2).'--'; echo $com->getVal(2.2).'--'; echo (new common(1))->getVal(8.9); echo '<hr>';echo '匿名類'; //定義匿名類需繼承 echo (new class(1) extends common{})->getVal(90);echo '<br>'; echo (new class(2) extends common{})->getVal(90);
運行效果圖如下:
匿名類被嵌套進普通 Class 后,不能訪問這個外部類(Outer class)的 private(私有)、protected(受保護)方法或者屬性。 為了訪問外部類(Outer class)protected 屬性或方法,匿名類可以 extend(擴展)此外部類。 為了使用外部類(Outer class)的 private屬性,必須通過構(gòu)造器傳進來:
<?php class Outer { private $prop = 1; protected $prop2 = 2; protected function func1() { return 3; } public function func2() { return new class($this->prop) extends Outer { private $prop3; public function __construct($prop) { $this->prop3 = $prop; } public function func3() { return $this->prop2 + $this->prop3 + $this->func1(); } }; } } echo (new Outer)->func2()->func3();//6
匿名函數(shù)可以實現(xiàn)閉包,那么相應(yīng)的匿名類也可以實現(xiàn)閉包
<?php /** * Created by PhpStorm. * User: bee * Date: 2016/4/24 * Time: 1:51 */ $arr = array(); for ($i=0; $i<3; $i++){ $arr[] = new class($i){ public $index=0; function __construct($i) { $this->index = $i; echo 'create</br>'; } public function getVal(){ echo $this->index; } }; } $arr[2]->getVal(); echo '<br>'; var_dump($arr[1]);
運行效果圖如下:
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
PHP中設(shè)置時區(qū),記錄日志文件的實現(xiàn)代碼
php中設(shè)置時區(qū) 記錄日志文件的實現(xiàn)代碼,需要的朋友可以參考下2013-01-01PHP基于迭代實現(xiàn)文件夾復(fù)制、刪除、查看大小等操作的方法
這篇文章主要介紹了PHP基于迭代實現(xiàn)文件夾復(fù)制、刪除、查看大小等操作的方法,簡單說明了迭代的原理并結(jié)合實例形式分析了php采用迭代算法實現(xiàn)文件夾的復(fù)制、刪除及查看大小等常見操作的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-08-08