php云盘匿名,PHP7之匿名类
发布日期:2021-06-24 10:48:30 浏览次数:5 分类:技术文章

本文共 1318 字,大约阅读时间需要 4 分钟。

匿名类可以创建一次性的简单对象

如下代码所示:

/*********************匿名函数************************/

$fu = function(){

echo "这是匿名函数";

};

$fu();

echo "

";

class Animal{

public $num;

public function __construct($key){

$this->num = $key;

}

public function getValue($sum):int{

return $this->num+$sum;

}

}

$animal = new Animal(5);

echo $animal->getValue(10);

echo "

";

/****************************匿名类***********************/

echo "这是匿名类

";

echo (new class(5) extends Animal{})->getValue(90);

echo "

";

echo (new class(5) extends Animal{})->getValue(100);

?>

输出如下

9ce2e197b8f0

Paste_Image.png

匿名类被嵌套进普通类后,不能访问这个 外部类的 私有(private)、受保护(protected)方法或属性。但如果想访问protected方法或属性,可以 继承(extends)这个外部类,想访问这个 私有(private)方法或属性,可以通过构造器,如下代码所示:

class Animal{

private $num = 1;

protected $age = 2;

protected function bark(){

return 10;

}

public function drive(){

return new class($this->num) extends Animal{

protected $id;

public function __construct($sum){

$this->id = $sum;

}

public function eat(){

return $this->id+$this->age+$this->bark();

}

};

}

}

echo (new Animal)->drive()->eat();

?>

以上代码输出 13

匿名类的闭包实现,如下

$test = array();

for($i=0; $i<6; $i++){

$test[] = new class($i){

public $age;

public function __construct($num){

$this->age = $num;

}

public function getValue(){

return $this->age;

}

};

}

echo $test[0]->getValue();

echo "

";

var_dump($test[2]);

如下显示

9ce2e197b8f0

Paste_Image.png

转载地址:https://blog.csdn.net/weixin_32290249/article/details/115669435 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:matlab数据大小不兼容,MATLAB无法执行赋值,因为左侧的索引与右侧的大小不兼容。 求解...
下一篇:java 边缓存边播放,java动态缓存技术:WEB缓存应用

发表评论

最新留言

不错!
[***.144.177.141]2024年04月26日 17时40分03秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章