博客列表 >类的基础及基础用法

类的基础及基础用法

简行
简行原创
2020年07月22日 23:34:38676浏览
1.类的声明与实例化
  1. <?php
  2. //类的声明
  3. class Users
  4. {
  5. //类的构造方法
  6. public function __construct()
  7. {
  8. }
  9. }
  10. //类的实例化:用new来调用
  11. $user = new Users();
  12. //动态类:再类名放在一个变量当中
  13. $class = "Users";
  14. $obj = new $class();
2.类的各种访问
  1. <?php
  2. //类的声明
  3. class Users
  4. { //类成员:类属性·类方法
  5. //类属性
  6. //public 公共成员:类的内外部都可访问,都可见
  7. public $uname ="一页书";
  8. public $arr = [111,222,333];
  9. public $level = '黄金';
  10. //静态属性
  11. public static $view = '霹雳侠影';
  12. //抽象属性:没被初始化的属性,默认为null
  13. public $abstract;
  14. //类方法
  15. public function fun(){
  16. //实例化
  17. //self:类引用,直接用引用类名
  18. // $user = new self;
  19. // return "姓名:{$user->uname},级别:{$user->level}";
  20. //$this:
  21. return "姓名:{$this->uname},级别:{$this->level}";
  22. //备注1:使用$this,则可不要$user = new self;
  23. //备注2:现在普通方法可以调用静态成员,但不推荐使用
  24. }
  25. //类方法访问外部成员,需要用参数传入
  26. public function fun1($outfun,$outname)
  27. {
  28. return '类方法访问外部成员==>'.$outfun().$outname;
  29. }
  30. //静态方法:不依赖示例,可以直接调用;静态方法只调用静态成员
  31. public static function fun2(){
  32. //静态成员是类,不属于类示例,不能用$this引用示例
  33. return self::$view;
  34. }
  35. }
  36. //类的实例化:用new来调用
  37. $user = new Users();
  38. //访问正常属性
  39. echo "访问正常属性:".$user ->uname.",数组元素:".$user->arr[2];
  40. echo "<br>";
  41. //访问静态属性:类名::属性
  42. echo "访问静态属性:".Users::$view;
  43. echo "<br>";
  44. //访问抽象属性
  45. var_dump($user->abstract);
  46. echo "<hr>";
  47. //访问类方法
  48. echo "访问普通类方法=>".$user->fun();
  49. echo "<br>";
  50. //访问类外部成员:外部函数(匿名函数),外部变量
  51. //外部函数
  52. $outfun =function()
  53. {
  54. return "欢迎";
  55. };
  56. //外部变量
  57. $outname ='经典款';
  58. echo $user->fun1($outfun,$outname);
  59. echo "<br>";
  60. //访问静态方法
  61. echo "访问静态方法==>".$user->fun2();

3.类的访问权限
  1. <?php
  2. //类的访问权限
  3. class Users
  4. {
  5. // public:公共成员,类的内外部及子类皆可调用
  6. // private:私有成员,仅限类的内部调用
  7. // protected:受保护成员,仅限类的内部和子类调用
  8. public $title='圣墟';
  9. private $author='辰东';
  10. protected function fun(){
  11. return "书名:".$this->title.",作者:".$this->author;
  12. }
  13. }
  14. //子类
  15. class Novel extends Users
  16. {
  17. protected $leve = "白金作家";
  18. public function fun12(){
  19. return $this->fun().",".$this->leve;
  20. }
  21. }
  22. //实例化
  23. echo "父类中访问==》".(new Users)->title;
  24. echo "<hr>";
  25. $novel = new Novel();
  26. echo "子类中访问==》".$novel->fun12();

4.类的扩展
  1. <?php
  2. //类的扩展
  3. // final: 类前加禁止类扩展
  4. class Users
  5. {
  6. // public:公共成员,类的内外部及子类皆可调用
  7. // private:私有成员,仅限类的内部调用
  8. // protected:受保护成员,仅限类的内部和子类调用
  9. public $title='圣墟';
  10. private $author='辰东';
  11. // final: 方法前加:禁止重写
  12. public function fun(){
  13. return "书名:".$this->title.",作者:".$this->author;
  14. }
  15. }
  16. //子类(扩展类)
  17. class Novel extends Users
  18. {
  19. //1.扩展
  20. //属性扩展
  21. protected $leve = "白金作家";
  22. //方法扩展
  23. public function fun12()
  24. {
  25. return parent::fun().",".$this->leve;
  26. }
  27. //2.重写
  28. // 属性重写
  29. public $title='圣墟123456';
  30. //方法重xie
  31. public function fun(){
  32. return "书名:".$this->title.",作者:".$this->author."级别:{$this->leve}";
  33. }
  34. }
  35. //实例化
  36. $novel = new Novel();
  37. echo "子类中访问方法扩展==》".$novel->fun12();
  38. echo "<hr>";
  39. echo "子类中访问方法重写==》".$novel->fun();

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