php怎么实现匿名评论,PHP-匿名对象与匿名类的实现过程-0905
* 匿名類:
* 1. php 7.0+ 才支持
* 2. 類似于匿名函數(shù),就是沒有名稱的類
* 3. 匿名類適合于一次性的創(chuàng)建與引用
* 4. 匿名類總是與: new 配套使用
類的三種訪問方式
實(shí)例
/**
*?匿名類:
*?1.?php?7.0+?才支持
*?2.?類似于匿名函數(shù),就是沒有名稱的類
*?3.?匿名類適合于一次性的創(chuàng)建與引用
*?4.?匿名類總是與:?new?配套使用
*/
class?Lei?//定義一個(gè)類
{
private?$name?=?'我';?//聲明一個(gè)私有屬性
public?function?story($name)??//使用一個(gè)方法
{
return?$this->name.'喜歡:?'.$name.'';??//返回XX喜歡XX
}
}
//有三種方式來訪問?story方法
//1、實(shí)例化一個(gè)對(duì)象??echo輸出
$Lei?=?new?Lei();
echo?$Lei->story('籃球').'
';//我喜歡籃球
//2、匿名對(duì)象
echo?(new?Lei())->story('足球').'
';//我喜歡足球
//3、匿名類?只有php?7.0+?才支持
echo?(new?class{
private?$name?=?'我';?//聲明一個(gè)私有屬性
public?function?story($name)??//使用一個(gè)方法
{
return?$this->name.'喜歡:?'.$name.'';??//返回XX喜歡XX
}
})->story('乒乓球').'
';
運(yùn)行實(shí)例 ?
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
匿名類的三種場(chǎng)景
實(shí)例
echo?'
匿名類的三種應(yīng)用場(chǎng)景
';echo?'
1、匿名類中的構(gòu)造方法
';echo?(new?class('小明'){
private?$name;
//匿名類中的構(gòu)造方法
public?function?__construct($name){
$this->name=$name;
}
public?function?story($name){
return?$this->name.'喜歡:?'.$name.'';
}
})->story('籃球').'
';
echo?'
2、在匿名類中可以繼承其它類中的成員
';class?Friend{
protected?$girl;
public?function?__construct($job='')
{
$this->girl?=?$job;
}
public?function?show()
{
return?$this->girl???:?'文員';
}
}
echo?(new?class('小紅','作家')?extends?Friend{
private?$name;
public?function?__construct($name,$job='')
{
parent::__construct($job);
$this->name?=?$name;
}
public?function?story($name)
{
return?$this->name.'喜歡上了:?'.$name.'';
}
public?function?show()
{
return?$this->name.'的工作是:?'.''.parent::show().'';
}
})->show().?'
';
echo?'
3.可以在類聲明中嵌套一個(gè)匿名類
';class?Anmal???//?宿主類,?父類的角色
{
public?$name?=?'狗';
protected?$color?=?'黑色';
private?$type?=?'哈士奇';
protected?function?info?()
{
return?'市1場(chǎng)售價(jià)3000元';
}
public?function?demo1()
{
//?宿主類中的私有成員不能在匿名類中直接使用
//?可以通過在匿名類創(chuàng)建一個(gè)構(gòu)造方法將宿主類中的私有成員進(jìn)行注入
//?3.?將宿主類中的私有屬性做為匿名類的構(gòu)造方法的參數(shù)傳入即可
return?(new?class?($this->type)?extends?Anmal?{
//1.?在匿名類中創(chuàng)建一個(gè)屬性用來接收宿主類中的私有屬性
private?$type;
//2.?創(chuàng)建一個(gè)構(gòu)造方法
public?function?__construct($type)
{
$this->type?=?$type;
}
public?function?demo2()
{
return?'我是嵌套匿名類中的方法:?'.?__METHOD__;
}
public?function?show()
{
return
'動(dòng)物的名稱是:?'?.$this->name.?'
'.//可以訪問
'動(dòng)物的顏色是:?'?.$this->color.?'
'.//可以訪問
'動(dòng)物的品1種是:?'?.$this->type.?'
';
}
});
}
}
//?訪問匿名類中的?demo2()
echo?(new?Anmal())->demo1()->demo2();
echo?'
';
echo?(new?Anmal())->demo1()->show();
運(yùn)行實(shí)例 ?
點(diǎn)擊 "運(yùn)行實(shí)例" 按鈕查看在線實(shí)例
總結(jié)
以上是生活随笔為你收集整理的php怎么实现匿名评论,PHP-匿名对象与匿名类的实现过程-0905的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab rem和mod,Matla
- 下一篇: linux升级openssl需要先卸载吗