Blogger Information
Blog 35
fans 0
comment 0
visits 16717
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php函数,class
手机用户311660634
Original
610 people have browsed it
  1. <?php
  2. // 函数
  3. // 函数的申明,int说明参数是要整数类的。如果需要Return的值有除了整数外的字符,
  4. // 需要在sum()这里加上‘:string'
  5. function sum(int $a, int $b){
  6. return $a + $b;
  7. }
  8. // 函数的调用
  9. echo sum(20, 50);
  10. // 如果需要参数太少,可在申明函数的时候,给参数一个默认值。如function sum($a, $b=null)
  11. // 如果参数过多,可以用'...$参数名'如:function sum(...$args)
  12. // 如果想引用函数内的值,可在申明函数的时候,在参数前加&
  13. function he(&$a){
  14. return $a += 10;
  15. }
  16. $a = 10;
  17. echo he($a);
  18. // 此时$a在全局中的值经过了函数作用,现在就是20。不在是之前申明的10
  19. echo $a . "\n";
  20. function fn1()
  21. {
  22. return ['name'=>'zhulaoshi','email'=>'zhulaoshi@php.cn'];
  23. }
  24. // 用解构语法
  25. // [$name, $email]= fn1();
  26. ['name'=>$name,'email'=>$email]= fn1();
  27. echo "$name ( $email ) ";
  28. // 回调
  29. function add($a,$b,$c){
  30. return array_sum([$a, $b, $c]);
  31. }
  32. // 回调调用有两个 call_usrr_func_array 和 call_user_func,推荐使用call_user_func_array
  33. // 因为call_user_func能做的call_user_func_array都能做
  34. echo call_user_func_array('add', [10,20,30]);
  35. // 类与对象
  36. class test{
  37. // public是公开成员
  38. public string $name;
  39. // private 这是私有成员,只能类中访问,类外不可见
  40. private int $age;
  41. private int $gz;
  42. // __construct 是构造方法,在类实例中能自动调用。两个下滑杠的是魔术方法,用户不能调用,只能PHP调用
  43. public function __construct($name, $age,$gz){
  44. $this->name = $name;
  45. $this->age = $age;
  46. $this->gz = $gz;
  47. }
  48. // 属性重载, 拦截外部的非法属性访问
  49. // __get()获取器,当获取一个不存在或无权限访问的属性时触发
  50. public function __get($name){
  51. if($name === 'age')
  52. return $this->$name;
  53. }
  54. // __set必须有两个参数(属性名,新值)
  55. public function __set($name,$value){
  56. if ($name === 'gz')
  57. $this->$name += $value;
  58. }
  59. private function hello($a, $b, $c)
  60. {
  61. return <<< DATA
  62. $this->name :
  63. 工资($this->gz)
  64. 年龄($this->age)
  65. DATA;
  66. }
  67. // 普通方法重载: __call()
  68. // 静态方法重载: __callStatic()
  69. // $name: 方法名称, $arguments: 参数数组
  70. public function __call($name, $arguments)
  71. {
  72. if ($name === 'hello') {
  73. return <<< DATA
  74. $this->name :
  75. 工资($this->gz)
  76. 年龄($this->age)
  77. DATA;
  78. }
  79. if ($name === 'sum') {
  80. return array_sum($arguments);
  81. }
  82. }
  83. }
  84. $obj = new test('老师', 40,5000);
  85. echo $obj->age;
  86. echo $obj->gz = 2000;
  87. echo $obj->hello('a', 'b', 'c');
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post