加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP魔术方 法具 体实践

发布时间:2023-02-11 12:44:06 所属栏目:PHP教程 来源:
导读:  __set() 方法 在为当前环境下未定义或不可见的类属性赋值时,会自动调用 __set() 方法。定义该方法的语法格式如下:
  public function __set($key, $value){
   ... ... ;
  }

  其中,参数
  __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教程”失败!
 

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!