Blogger Information
Blog 15
fans 0
comment 0
visits 6249
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文件实例与类操作
啊℃。㏄
Original
323 people have browsed it

文件实例

  1. <?php
  2. // 文件包含
  3. // 本质:将目录文件复制到当前位置
  4. // 1. include
  5. include __DIR__ . '/int/f1.php';
  6. // 被包含的文件共享作用域
  7. echo $username . '<hr>';
  8. $email = include __DIR__ . '/int/f1.php';;
  9. echo $email. '<hr>';
  10. // 2. require
  11. include __DIR__ . '/int/f1.php';
  12. echo $username . '<hr>';
  13. $email = include __DIR__ . '/int/f1.php';;
  14. echo $email. '<hr>';
  15. // include,require的区别
  16. // 区别1
  17. // include:用到时再加载,动态
  18. // require:应该写到顶部,静态
  19. if(false) include __DIR__ . '/int/f2.php' ;
  20. echo $site;
  21. if(false) require __DIR__ . '/int/f2.php' ;
  22. echo $site;
  23. // 区别2
  24. // include:加载失败,继续执行不中断
  25. // require:加载失败,中断退出
  26. include __DIR__ . '/int/hello.php' ;
  27. echo 'include后面代码.<br>';
  28. require __DIR__ . '/int/hello.php' ;
  29. echo 'require后面的代码.<br>';

类与实例

  1. <?php
  2. /**
  3. * 类与实例
  4. * 1.class
  5. * 2.new
  6. */
  7. // 类声明
  8. // 1.class
  9. class Goods
  10. {
  11. }
  12. // 类的实例化:创建对象的过程,new
  13. $goods = new Goods;
  14. var_dump($goods);
  15. echo '<hr>';
  16. echo get_class($goods);
  17. // 动态类
  18. $str = 'goods';
  19. // 创建类必须是首字母大写,大驼峰/帕斯卡
  20. $class = ucfirst('goods');
  21. // echo $class;
  22. $o = new $class;
  23. var_dump($o);
  24. var_dump($o instanceof Goods);

类的扩展/抽象/最终

  1. <?php
  2. use Demo1 as GlobalDemo1;
  3. /**
  4. * 类的扩展/抽象/最终
  5. * 1.protected:受保护/继承
  6. * 2.extends:扩展/继承
  7. * 3.parent:父类引用
  8. * 4.abstract:抽象
  9. * 5.final:最终类
  10. */
  11. //父类,基类,超类
  12. class Person
  13. {
  14. //protected:成员可以继承,可以在子类中使用
  15. protected $name;
  16. // private:私有,仅限于当前类,子类,外部都不可见
  17. private $id = 1335;
  18. // public:类中,子类类外都可见
  19. public function __construct($name)
  20. {
  21. $this->name = $name;
  22. }
  23. // getInfo()::protected
  24. // 比protected更严格的是private,比它宽松的是public
  25. protected function getInfo()
  26. {
  27. return $this->name;
  28. }
  29. }
  30. // 学生类
  31. // extends:Stu这个类,扩展了Person类的功能
  32. class Stu extends Person
  33. {
  34. // 1.属性扩展
  35. private $lesson;
  36. private $score;
  37. // 2.方法扩展/重写
  38. public function __construct($name,$lesson,$score)
  39. {
  40. // parent:父类引用
  41. // 引用了父类的构造方法
  42. // :: 这个叫范围操作符
  43. parent:: __construct($name);
  44. $this->lesson = $lesson;
  45. $this->score = $score;
  46. }
  47. // 扩展必须得比父类的宽松才行
  48. public function getInfo()
  49. {
  50. // return $this->name . "同学,($this->lesson : $this->score 分)";
  51. return parent::getInfo(). "同学,($this->lesson : $this->score 分)";
  52. }
  53. }
  54. $stu = new Stu('小狗','PHP',80);
  55. echo $stu->getInfo();
  56. echo '<hr>';
  57. $person = new Person('小猪');
  58. var_dump($person);
  59. echo '<hr>';
  60. //如果不想让用户直接使用父类,而必须通过继承/扩展的子类来间接使用
  61. // 将父类声明为严格抽象类
  62. abstract class Demo1
  63. {
  64. }
  65. class Demo2 extends Demo1
  66. {
  67. }
  68. (new Demo2);
  69. // 查询父类是函数是get_parent_class
  70. echo 'Demo2的父类是:'. get_parent_class(new Demo2);
  71. echo '<hr>';
  72. abstract class Demo3
  73. {
  74. // hello方法已经实现了
  75. // protected function hello()
  76. // {
  77. // }
  78. // 抽象方法:只有方法名,参数列表,没有具体实现(大括号)
  79. abstract protected function hello($name);
  80. }
  81. class Demo4 extends Demo3
  82. {
  83. // 工作类Demo4中必须实现父类中的抽象成员
  84. public function hello($name)
  85. {
  86. return 'Hello,'.$name;
  87. }
  88. }
  89. echo call_user_func([new Demo4,'Hello'],'李老师');
  90. echo '<hr>';
  91. // 如果一个类不用扩展,直接当成工作类,/直接干活,直接new
  92. // 为了防止被继承,可声明为最终类
  93. final class Demo5
  94. {
  95. }

接口(大号的抽象类)

  1. <?php
  2. // 接口:大号的抽象类
  3. // 接口的成员必须都是抽象的
  4. // interface:声明接口
  5. // implements:实现接口
  6. interface iUser
  7. {
  8. //1.类常量
  9. const NATION = 'CHINA';
  10. // 2.必须是抽象,必须是public
  11. public function m1();
  12. public function m2();
  13. }
  14. // 接口不能直接使用,要用一个类来实现它
  15. // 1.普通类来实现一个接口,必须将接口中的所有抽象方法全部实现
  16. class Demo1 implements iUser
  17. {
  18. public function m1()
  19. {
  20. }
  21. public function m2()
  22. {
  23. }
  24. }
  25. // 2.抽象类来实现一个接口,允许有不实现的抽象成员
  26. abstract class Demo2 implements iUser
  27. {
  28. public function m1()
  29. {
  30. }
  31. }
  32. //php默认只支持单继承
  33. // class A extends B,
  34. // 可以通过接口,间接实现继承
  35. interface A
  36. {
  37. }
  38. interface B
  39. {
  40. }
  41. interface C
  42. {
  43. }
  44. class Test implements A ,B ,C
  45. {
  46. }
  47. // 查看当前类实现的所有接口
  48. $arr = class_implements('Test');
  49. printf('<pre>%s</pre>',print_r($arr,true));
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