当前位置:Gxlcms > PHP教程 > php魔术方法功能与用法实例分析

php魔术方法功能与用法实例分析

时间:2021-07-01 10:21:17 帮助过:31人阅读

本文实例讲述了php魔术方法功能与用法。分享给大家供大家参考,具体如下:

  1. <?php
  2. //php中的魔术方法
  3. header('content-type:text/html;charset=utf-8');
  4. class Person{
  5. public $name;
  6. protected $sex;
  7. private $salary;
  8. //构造方法,实例化对象是自动触发的方法
  9. public function __construct($name,$sex,$salary){
  10. $this->name=$name;
  11. $this->sex=$sex;
  12. $this->salary=$salary;
  13. }
  14. //魔术常量__CLASS__
  15. public function getClassName(){
  16. echo __CLASS__;
  17. }
  18. // __FUNCTION__
  19. public function getMethod(){
  20. echo __FUNCTION__;
  21. }
  22. //__tostring()
  23. public function __tostring(){
  24. return '对象必须用var_dump()'.'姓名是'.$this->name;
  25. }
  26. //__clone() 在使用clone方法的时候会自动调用
  27. public function __clone(){
  28. echo '这个对象是被克隆出来的';
  29. $this->name='李四';
  30. }
  31. //__get() 当调用一个不存在或权限不够的属性自动触发的方法
  32. public function __get($a){
  33. echo $a.'属性不存在或权限不够';
  34. }
  35. //__set() 当设置一个不存在或权限不够的属性时自动触发的方法
  36. public function __set($name,$value){
  37. echo $name.'为'.$value;
  38. }
  39. //__isset() 当在类外判断一个不存在或权限不够的属性时自动触发的方法
  40. public function __isset($name){
  41. echo $name.'不能为空';
  42. }
  43. //__call() 当去访问一个权限不够或者不存在的方法的时候,会自动触发的魔术方法
  44. public function __call($method,$a){
  45. echo '您请求的方法'.$method.'不存在';
  46. $this->getname();
  47. }
  48. public function getname(){
  49. echo $this->name;
  50. }
  51. }
  52. //实例化对象
  53. $person=new Person('张三','男',12223);
  54. $person1=new Person('张三','男',12223);
  55. //$person2=new Person('李四','女',11111);
  56. var_dump($person);
  57. var_dump($person1);
  58. exit;
  59. $person->getClassName();
  60. $person->getMethod();
  61. //echo $person->name;
  62. //echo $person;
  63. $person1=$person; //同一个对象
  64. //var_dump($person);
  65. //var_dump($person1);
  66. $person2=clone $person; //克隆会产生不一样的对象
  67. //var_dump($person);
  68. //var_dump($person2);
  69. //echo $person2->name;
  70. //$person->salary=10000;
  71. //var_dump(isset($person->salary));
  72. //$person->getName();

以上就是php魔术方法功能与用法实例分析的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!

人气教程排行