设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP魔术方法具体实践

发布时间:2021-05-23 02:29 所属栏目:121 来源:互联网
导读:1、__set() 方法 在为当前环境下未定义或不可见的类属性赋值时,会自动调用 __set() 方法。定义该方法的语法格式如下: public function __set($key, $value){ .
1、__set() 方法 在为当前环境下未定义或不可见的类属性赋值时,会自动调用 __set() 方法。定义该方法的语法格式如下:

public function __set($key, $value){
    ... ... ;
}

其中,参数 $key 是要操作的变量名称,$value 为变量 $key 的值。

【示例】下面使用简单的示例来演示一下 __set() 方法的使用。

<?php

class Website{

public $name;

private $url;

public function __set($key, $value){

echo '为“'.$key.'”赋值“'.$value.'”失败!<br>';

}

}

 

$object = new Website();

$object -> name = 'C语言中文网';

$object -> url = '';

$object -> title = 'PHP教程';

?>

运行结果如下:

为“url”赋值“”失败! 为“title”赋值“PHP教程”失败!

利用 __set() 方法的特性,我们可以通过 __set() 方法为类中的使用 private 关键词修饰的属性进行赋值或修改。如下所示:

<?php

class Website{

public $name;

private $url = '';

public function __set($key, $value){

if(isset($this->$key)){

$this -> $key = $value;

}else{

echo '为“'.$key.'”赋值“'.$value.'”失败!<br>';

}

}

public function getUrl(){

echo $this -> url;

}

}

 

$object = new Website();

$object -> name = 'C语言中文网';

$object -> url = '';

$object -> title = 'PHP教程';

$object -> getUrl();

?>

运行结果如下:

为“title”赋值“PHP教程”失败!

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读