固原站长网 PHP教程 PHP魔术方法具体实践

PHP魔术方法具体实践

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教程”失败!

上一篇
下一篇
返回顶部