博客列表 >11月26日_命名空间,类中属性、方法调用与构造函数 - 九期线上班

11月26日_命名空间,类中属性、方法调用与构造函数 - 九期线上班

只猫
只猫原创
2019年11月29日 00:06:24766浏览

PHP类与对象 基础

类的创建 实例化 命名空间 类属性 类方法 构造函数

  1. <?php
  2. //类与对象 基础
  3. //1.类的创建 关键字class
  4. //2.命名空间 关键字namespace 相当于文件夹系统 把每个文件下命名的文件分开
  5. //定义当前命名空间名为myClass
  6. namespace myClass;
  7. //创建类 MyClass
  8. class MyClass{
  9. //6.构造方法 __construct 在类实例化时自动调用
  10. public function __construct(){
  11. //构造方法
  12. //可以用于给类属性初始值 - 接收参数 在实例化时传入参数 把参数值赋给属性
  13. //简单点:
  14. echo '<br>我被自动调用了。<br>';
  15. }s
  16. //这是我的类MyClass
  17. //4.类中有成员 类属性(变量) 和 类方法(函数)
  18. //类属性和类方法有访问控制符public protected private限定
  19. //类属性必须要写访问限定符 类方法可以省略 默认为public
  20. public $name = 'MyClass';
  21. public $intro = '这是我的类MyClass';
  22. private $privateName = 'DC';
  23. //5.类方法
  24. function myFunction(){
  25. //方法内容随便写
  26. echo '<br>(在类内的myFunction方法输出)<br>类名:'.$this->name.'<br>介绍:'.$this->intro.'<br>';
  27. }
  28. private function myPrivate(){
  29. echo '<br>我私有name是:'.$this->privateName.'<br>';
  30. }
  31. }
  32. //3.实例化 new 类可以无限实例化出对象。
  33. //每个实例对象有自己编号
  34. $c1 = new MyClass(); //调用了一次__construct 同时输出 '我被自动调用了。'
  35. $c2 = new MyClass(); //调用了一次__construct 同时输出 '我被自动调用了。'
  36. //调用方法 访问类成员
  37. $name = $c1->name;
  38. $intro = $c1->intro;
  39. echo '<br>类名:'.$name.'<br>介绍:'.$intro.'<br>';
  40. //调用类中的方法
  41. echo $c1->myFunction();
  42. echo '<hr>';
  43. //get_class_methods() 查看类中定义的方法 传入常量
  44. $methods = get_class_methods(MyClass::class);
  45. var_dump($methods); //只有公开的方法才会显示 array(1) { [0]=> string(10) "myFunction" }
  46. echo '<hr>';
  47. //两个相同类的实例化对象 '=='true成立 '==='不成立false
  48. var_dump($c1); //object(myClass\MyClass)#1 (0) { }
  49. var_dump($c2); //object(myClass\MyClass)#2 (0) { }
  50. //instanceof() 检测某个对象是否是属于这个类
  51. $a = $c1 instanceof MyClass;
  52. var_dump($a); //bool(true)

结果展示

手写:

总结 : 类是php编程中重要的一部分,现在只是学习到写法,一直在学习思想,但是思想总不能那么轻易理解掌握。类里面细节很多,但平常用到的可能却不多,只是循规蹈矩按类的使用方法来使用它,自己的角色是使用者而不是创造者,需要多遇见错误才能学习的更透彻一点。

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