在php7之後,php中加入了匿名類的特性。匿名類和匿名方法讓php成為了更現代化的語言,也讓我們的**開發工作越來越方便。我們先來看看匿名類的簡單使用。// 直接定義
$obja = new class
public function getname()
echo "i'm obja";
$obja->getname();
// 方法中返回
function testa()
return new class
public function getname()
echo "i'm testa's obj";
$objb = testa();
$objb->getname();
// 作為引數
function testb($testbobj)
echo $testbobj->getname();
testb(new class{
public function getname()
echo "i'm testb's obj";
一次性給出了三種匿名類的使用方法。匿名類可以直接定義給變數,可以在方法中使用return返回,也可以當做引數傳遞給方法內部。其實,匿名類就像乙個沒有事先定義的類,而在定義的時候直接就進行了例項化。// 繼承、介面、訪問控制等
class a
public $propa = 'a';
public function getprop()
echo $this->propa;
trait b
public function getname()
echo 'trait b';
inte***ce c
public function show();
$p4 = 'b4';
$objc = new class($p4) extends a implements c
use b;
private $prop1 = 'b1';
protected $prop2 = 'b2';
public $prop3 = 'b3';
public function __construct($prop4)
echo $prop4;
public function getprop()
parent::getprop();
echo $this->prop1, '===', $this->prop2, '===', $this->prop3, '===', $this->propa;
$this->getname();
$this->show();
public function show()
echo 'show';
$objc->getprop();
匿名類和普通類一樣,可以繼承其他類,可以實現介面,當然也包括各種訪問控制的能力。也就是說,匿名類在使用方面和普通類並沒有什麼不同。但如果用get_class()獲取類名將是系統自動生成的類名。相同的匿名類返回的名稱當然也是相同的。// 匿名類的名稱是通過引擎賦予的
var_dump(get_class($objc));
// 宣告的同乙個匿名類,所建立的物件都是這個類的例項
var_dump(get_class(testa()) == get_class(testa()));
那麼匿名類中的靜態成員呢?當然也和普通類一樣,靜態成員是屬於類而不是例項的。
// 靜態變數
function testd()
return new class{
public static $name;
$objd1 = testd();
$objd1::$name = 'objd1';
$objd2 = testd();
$objd2::$name = 'objd2';
echo $objd1::$name;
當類中的靜態變數修改時,所有類例項的這個靜態變數都會跟著變化。這也是普通類靜態成員的特性。
遷移到php7,遷移PHP版本到PHP7
這篇文章主要介紹了遷移php版本到php7的方法,需要的朋友可以參考下 今天看到微博上說phpng也就是php7合併到master上了,大家都知道我是比較喜歡 最新版本的東西,看看有什麼特性,我就忍不住公升級去了,以前我的php版本是5.5.19,然後我就開始了。yum install git gi...
遷移到php7,遷移PHP版本到PHP7
遷移php版本到php7 今天看到微博上說phpng也就是php7合併到master上了,大家都知道我是比較喜歡 最新版本的東西,看看有什麼特性,我就忍不住公升級去了,以前我的php版本是5.5.19,然後我就開始了。如下 yum install git git clone 如下 單核 intel ...
國內php7安裝源 原始碼安裝PHP7
2.解壓 tar xzf php 7.2.4.tar.bz2 3.安裝 cd php 7.2.4 configure prefix data server php7 配置安裝路徑 make 編譯 make install 安裝 4.配置全域性環境 如果執行php v命令無效則進行這項配置 開啟配置檔...