欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > php >内容正文

php

PHP拦截器的使用(转)

发布时间:2025/3/8 php 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 PHP拦截器的使用(转) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

PHP有如下几个拦截器:

1、__get($property)
功能:访问未定义的属性是被调用
2、__set($property, $value)
功能:给未定义的属性设置值时被调用
3、__isset($property)
功能:对未定义的属性调用isset()时被调用
4、__unset($property)
功能:对未定义的属性调用unset()时被调用
5、__call($method, $arg_array)
功能:调用未定义的方法时被调用

拦截器,顾名思义,它就“拦截”未定义的属性和方法,有点类似__autoload和__construct等方法,应用案例如下(摘自网络):

 

  • // 若访问一个未定义的属性,则将调用get{$property}对应的方法
  • function __get($property){
  • $method ="get{$property}";
  • if(method_exists($this, $method)){
  • return $this->$method();
  • }
  • }
  •  
  • // 若给一个未定义的属性设置值,则将调用set{$property}对应的方法
  • function __set($property, $value){
  • $method ="set{$property}";
  • if(method_exists($this, $method)){
  • return $this->$method($value);
  • }
  • }
  • // 若用户对未定义的属性调用isset方法,
  • function __isset($property){
  • $method ="isset{$property}";
  • if(method_exists($this, $method)){
  • return $this->$method();
  • }
  • }
  • // 若用户对未定义的属性调用unset方法,
  • // 则认为调用对应的unset{$property}方法
  • function __unset($property){
  • $method ="unset{$property}";
  • if(method_exists($this, $method)){
  • return $this->$method();
  • }
  • }
  • function __call($method, $arg_array){
  • if(substr($method,0,3)=="get"){
  • $property = substr($method,3);
  • $property = strtolower(substr($property,0,1)).substr($property,1);
  • return $this->$property;
  • }
  • }
  • 转载于:https://www.cnblogs.com/xingmeng/p/3248612.html

    总结

    以上是生活随笔为你收集整理的PHP拦截器的使用(转)的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。