Blogger Information
Blog 87
fans 1
comment 0
visits 58356
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文件本质与作用、关键字的学习
阿杰
Original
759 people have browsed it

1.文件的本质与作用域

(1)本质:将目录文件复制到当前位置

  • 使用include或者require引入文件
  1. // 1. include
  2. include __DIR__ .'/inc/f1.php';
  3. // $username = '王五';
  4. echo $username. '<hr>';
  5. $email = include __DIR__ .'/inc/f1.php';
  6. echo $email.'<hr>';
  7. // 2. require
  8. require __DIR__.'/inc/f1.php';
  9. echo $username. '<hr>';
  10. $email = require __DIR__ .'/inc/f1.php';
  11. echo $email.'<hr>';

(2)作用域:作用在当前引进页面

  • header.php
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <!-- 页眉 -->
  11. <header>
  12. <nav>
  13. <a href="">首页</a>
  14. <a href="">教学视频</a>
  15. <a href="">学习路径</a>
  16. <a href="">技术文章</a>
  17. </nav>
  18. </header>
  • footer.php
  1. <!-- 页脚 -->
  2. <footer>
  3. <div class="copy">php中文网版权所以&copy;2022-2025</div>
  4. </footer>
  5. </body>
  6. </html>
  • 主页面
  1. <!-- 页眉 -->
  2. <?php require __DIR__.'/inc/header.php' ?>
  3. <!-- 主体 -->
  4. <main>
  5. <ul>
  6. <li><a href="">最新文章1</a></li>
  7. <li><a href="">最新文章2</a></li>
  8. <li><a href="">最新文章3</a></li>
  9. <li><a href="">最新文章4</a></li>
  10. <li><a href="">最新文章5</a></li>
  11. <li><a href="">最新文章6</a></li>
  12. <li><a href="">最新文章7</a></li>
  13. <li><a href="">最新文章8</a></li>
  14. <li><a href="">最新文章9</a></li>
  15. <li><a href="">最新文章10</a></li>
  16. </ul>
  17. </main>
  18. <!-- 页脚 -->
  19. <?php require __DIR__.'/inc/footer.php' ?>

2.类的关键字

(1)class、new 类的声明与实例

  1. // 类声明
  2. // 1. class
  3. class Goods
  4. {
  5. // ...
  6. }
  7. // 类的实例化:创建对象的过称
  8. // 2. new
  9. $goods = new Goods;
  10. var_dump($goods);

(2)public 公有,可供外部使用

  1. class User1
  2. {
  3. // public
  4. public $username = '张三';
  5. }
  6. $user1 = new User1();
  7. echo $user1->username.'<hr>';

(3)private 私有,仅限当前类中使用

  1. class User1
  2. {
  3. // public
  4. public $username = '张三';
  5. // private
  6. private $age = 18;
  7. }
  8. $user1 = new User1();
  9. echo $user1->username.'<hr>';
  10. echo $user1->age.'<hr>';

  1. class User1
  2. {
  3. // public
  4. public $username = '张三';
  5. // private
  6. private $age = 18;
  7. public function getAge(){
  8. return $this->age;
  9. }
  10. }
  11. $user1 = new User1();
  12. echo $user1->username.'<hr>';
  13. // echo $user1->age.'<hr>';
  14. echo '获取当前类中的age:'.$user1->getAge().'<hr>';

(4)protected 继承(extends), 可在本类或子类中使用, 不对外公开

  • 直接使用
  1. class User1
  2. {
  3. // public 公共/公共,默认
  4. public $username = '张三';
  5. // private 私有,仅限在当前类中使用
  6. private $age = 18;
  7. // protected 继承, 可在本类或子类中使用, 不对外公开
  8. protected $id = 1;
  9. public function getAge(){
  10. return $this->age;
  11. }
  12. }
  13. $user1 = new User1();
  14. echo $user1->username.'<hr>';
  15. // echo $user1->age.'<hr>';
  16. echo '获取当前类中的age:'.$user1->getAge().'<hr>';
  17. echo $user1->id.'<hr>';

  • 当前类中使用
  1. class User1
  2. {
  3. // public 公共/公共,默认
  4. public $username = '张三';
  5. // private 私有,仅限在当前类中使用
  6. private $age = 18;
  7. // protected 继承, 可在本类或子类中使用, 不对外公开
  8. protected $id = 1;
  9. public function getAge(){
  10. return $this->age;
  11. }
  12. public function getId(){
  13. return $this->id;
  14. }
  15. }
  16. $user1 = new User1();
  17. echo $user1->username.'<hr>';
  18. // echo $user1->age.'<hr>';
  19. echo '获取当前类中的age:'.$user1->getAge().'<hr>';
  20. // echo $user1->id.'<hr>';
  21. echo '获取当前类中的id:'.$user1->getId().'<hr>';

  • 子类中使用
  1. class Stu extends User1
  2. {
  3. public function getId(){
  4. return $this->id;
  5. }
  6. }
  7. $stu = new Stu();
  8. echo '子类中使用父类的id:'.$stu->getId().'<hr>';

(5)abstract 抽象

  • 将父类声明为一个抽象类
  1. abstract class Demo1
  2. {
  3. }
  4. var_dump(new Demo1);

  • 如果不想让用户直接使用父类,而必须通过继承/扩展的子类来间接使用
  1. class Demo2 extends Demo1
  2. {
  3. }
  4. echo 'Demo2的父类是:'.get_parent_class(new Demo2).'<hr>';

(6)interface 接口

  • 声明接口
  1. // interface: 声明接口
  2. interface iUser
  3. {
  4. // 1. 类常量
  5. const NATION = 'CHINA';
  6. // 2. 必须是抽象,必须是public
  7. public function m1();
  8. public function m2();
  9. }
  • 接口不能直接用, 要用一个类来实现它

(1)用普通类来实现一个接口, 必须将接口中的所有抽象方法全部实现

  1. class Demo11 implements iUser
  2. {
  3. public function m1()
  4. {
  5. }
  6. // public function m2()
  7. // {
  8. // }
  9. }

(2)用抽象类来实现一个接口, 允许有不实现的抽象成员

  1. abstract class Demo22 implements iUser
  2. {
  3. public function m1()
  4. {
  5. }
  6. }

(3)可通过接口,间接实现多继承

  1. interface A
  2. {
  3. }
  4. interface B
  5. {
  6. }
  7. interface C
  8. {
  9. }
  10. class Test implements A, B, C
  11. {
  12. }
  13. // 查看当前类实现的所有接口
  14. $arr = class_implements('Test');
  15. 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