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

PHP魔术方法具体实践

1、__set() 方法在为当前环境下未定义或不可见的类属性赋值时,会自动调用 __set() 方法。定义该方法的语法格式如下: public function __set($key, $value){ … … ; } 其中,参数 $key 是要操作的变量名称,$value 为变量 $key 的值。 【示例】下面使用

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

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/jc/php/2021/0523/4246.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部