php怎么实现匿名评论,PHP-匿名对象与匿名类的实现过程-0905
* 匿名類:
* 1. php 7.0+ 才支持
* 2. 類似于匿名函數,就是沒有名稱的類
* 3. 匿名類適合于一次性的創建與引用
* 4. 匿名類總是與: new 配套使用
類的三種訪問方式
實例
/**
*?匿名類:
*?1.?php?7.0+?才支持
*?2.?類似于匿名函數,就是沒有名稱的類
*?3.?匿名類適合于一次性的創建與引用
*?4.?匿名類總是與:?new?配套使用
*/
class?Lei?//定義一個類
{
private?$name?=?'我';?//聲明一個私有屬性
public?function?story($name)??//使用一個方法
{
return?$this->name.'喜歡:?'.$name.'';??//返回XX喜歡XX
}
}
//有三種方式來訪問?story方法
//1、實例化一個對象??echo輸出
$Lei?=?new?Lei();
echo?$Lei->story('籃球').'
';//我喜歡籃球
//2、匿名對象
echo?(new?Lei())->story('足球').'
';//我喜歡足球
//3、匿名類?只有php?7.0+?才支持
echo?(new?class{
private?$name?=?'我';?//聲明一個私有屬性
public?function?story($name)??//使用一個方法
{
return?$this->name.'喜歡:?'.$name.'';??//返回XX喜歡XX
}
})->story('乒乓球').'
';
運行實例 ?
點擊 "運行實例" 按鈕查看在線實例
匿名類的三種場景
實例
echo?'
匿名類的三種應用場景
';echo?'
1、匿名類中的構造方法
';echo?(new?class('小明'){
private?$name;
//匿名類中的構造方法
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.可以在類聲明中嵌套一個匿名類
';class?Anmal???//?宿主類,?父類的角色
{
public?$name?=?'狗';
protected?$color?=?'黑色';
private?$type?=?'哈士奇';
protected?function?info?()
{
return?'市1場售價3000元';
}
public?function?demo1()
{
//?宿主類中的私有成員不能在匿名類中直接使用
//?可以通過在匿名類創建一個構造方法將宿主類中的私有成員進行注入
//?3.?將宿主類中的私有屬性做為匿名類的構造方法的參數傳入即可
return?(new?class?($this->type)?extends?Anmal?{
//1.?在匿名類中創建一個屬性用來接收宿主類中的私有屬性
private?$type;
//2.?創建一個構造方法
public?function?__construct($type)
{
$this->type?=?$type;
}
public?function?demo2()
{
return?'我是嵌套匿名類中的方法:?'.?__METHOD__;
}
public?function?show()
{
return
'動物的名稱是:?'?.$this->name.?'
'.//可以訪問
'動物的顏色是:?'?.$this->color.?'
'.//可以訪問
'動物的品1種是:?'?.$this->type.?'
';
}
});
}
}
//?訪問匿名類中的?demo2()
echo?(new?Anmal())->demo1()->demo2();
echo?'
';
echo?(new?Anmal())->demo1()->show();
運行實例 ?
點擊 "運行實例" 按鈕查看在線實例
總結
以上是生活随笔為你收集整理的php怎么实现匿名评论,PHP-匿名对象与匿名类的实现过程-0905的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab rem和mod,Matla
- 下一篇: 动态规划算法php,php算法学习之动态