博客列表 >022-11月26日-PHP第12节-命名空间、类、对象

022-11月26日-PHP第12节-命名空间、类、对象

冇忉丼
冇忉丼原创
2019年11月28日 00:22:30628浏览

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('欧阳老师');

附件

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

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议