Blogger Information
Blog 27
fans 0
comment 0
visits 17356
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
022-11月26日-PHP第12节-命名空间、类、对象
冇忉丼
Original
629 people have browsed it

1. 创建类、实例化、命名空间、类成员、类方法(手写)

  1. namespace admin;
  2. class demo{
  3. public $product = '手机';//成员变量初始化使用常数
  4. public $price = '1600';
  5. public $name;
  6. public function sum($a,$b){//访问限制符
  7. return $a+$b;
  8. }
  9. public function newclass(){
  10. $b = new self();//$this代表当前类,self代表类的实例
  11. echo $b->product;//当前类,因为类是有名字,自己的类里可以调用自己
  12. }
  13. public function this_test(){
  14. return $this->product . '价格为' . $this->price;//省略了$this = new self;
  15. }
  16. public function __construct($name)
  17. {
  18. echo $this->name = $name;
  19. }//实例化的时候自动就调用
  20. public function __destruct(){
  21. echo '对象已被删除';
  22. }
  23. }
  24. $a = new demo('an');
  25. // 访问类里的成员 ->
  26. echo '<hr/>';
  27. echo $a->product;//product不加$因为会被当作变量
  28. //在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,
  29. //反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。
  30. //另外,如果从类的内部访问const或者static变量或者方法,必须使用自引用的self,因为:
  31. //1.self代表类,$this代表对象
  32. //2.能用$this的地方一定使用self,能用self的地方不一定能用$this
  33. //3.静态的方法中不能使用$this,静态方法给类访问的。
  34. //结论 : self与$this的功能极其相似,但二者又不相同。$this不能引用静态成员和常量。self更像类本事,而$this更像是实例本身。
  35. echo '<hr/>';
  36. echo $a->this_test();
  37. echo '<hr/>';
  38. $a->color = 'red';//动态属性,public
  39. print_r(get_class_vars(demo::class));//把类的成员列出来
  40. echo '<hr/>';
  41. print_r(get_class_methods(demo::class));
  42. echo '<hr/>';

2. 构造方法

实例化类的时候就调用,用于预处理

  1. class construt_test{
  2. function __construct($name){
  3. echo $name . '讲课真棒!';
  4. echo '<hr/>';
  5. }
  6. }
  7. $v = new construt_test('欧阳老师');

附件

一二题合在一起的运行结果:

Correcting teacher:查无此人查无此人

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