Blogger Information
Blog 3
fans 0
comment 0
visits 1790
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP:文件的加载与类的初识
夸父逐日
Original
608 people have browsed it
在PHP中,include,include_once,require,require_once 都有引入文件(PHP,HTML等)的作用。我们在运用它们的时候要理解使用。
我们在脚本demo1.php 写入一个求和的函数
  1. <?php
  2. function sum(int $a, int $b){
  3. return $a + $b;
  4. }
在同一目录下的另外一个脚本文件中分别用上述四种方法
include引用文件不会检查被引用的文件在当前文件中是否引用过,并且如果被引用的文件的不存在,当前脚本仍然可以继续执行
  1. include './demo1.php';
  2. echo sum(3, 4);
  3. // 结果是 7
  1. // 但是我们引用两次该demo1.php 文件是就会报错
  2. include './demo1.php';
  3. include './demo1' . '.php';
  4. echo sum(3, 5);
  5. // 结果是:Fatal error: Cannot redeclare sum() ;函数不能重新定义
这时我们就可以使用include_once了。include_once在加载文件是会检查文件是否被引用过。
  1. $a = './demo1.php';
  2. include $a;
  3. include './demo1.php';
  4. echo sum(3,5);
  5. //此时不会报错,结果是8
前文说过,使用include 加载文件,被加载的文件不存在,当前脚本仍然可以继续执行,请看以下例子。
  1. include './demo2.php';
  2. echo '就算被加载文件不存在我仍然可以执行';
  3. // 浏览器报错并返回结果:就算被加载文件不存在我仍然可以执行。
  4. // 说明include 加载文件并不会因为被加载文件不存在而停止当前脚本的执行
  5. // 但被加载的文件有错误时,仍然会报错
require 强制加载文件,被加载文件不存在的话,当前脚本会立即停止
  1. require ('./demo6.php');
  2. echo '就算出错了我仍然可以执行';
  3. // 浏览器报错并且不会输出:“就算出错了我仍然可以执行”
require_once 会在强制加载文件之前检查文件是否被加载过
  1. require ('./demo1.php');
  2. require_once ('./demo1.php');
  3. echo sum(3,4);
  4. // 结果是:7

总结:include_once, require_once可以实现去重加载,但会增加内存开销。require强制加载,若文件不存在的话就会立即停止当前脚本执行,常用于加载一些重要文件。

类的创建与访问。类成员可以有常量,方法,属性

类的创建与实例化

  1. //创建一个类
  2. class User{
  3. }
  4. //创建User类的实例
  5. $user1 = new User();
  6. //判断实例是否是某一个类的对象。
  7. var_dump($use1 instanceof User);
  8. //得到某一个实例对象的类名
  9. echo get_class($use1);

类的属性值与类成员的访问
类属性就是有访问限制的变量。语法:访问限制符 $变量名称。访问限制符有:public protected private

  1. class User
  2. {
  3. //演示类属性的创建
  4. public $name = 'Bob';
  5. public $age = 20;
  6. public $options = [3,4,5];
  7. public $nowdoc = <<< 'hello'
  8. 你好,世界
  9. hello;
  10. public $heredoc = <<< "hi"
  11. 你好,\n\r世界
  12. hi;
  13. //类属性值不能用以下方法创建
  14. //1.非法属性值 2.变量 3.类属性、类方法 4.表达式 5.函数调用 6.注意heredoc中不能出现变量。
  15. //如果一个属性对所有的实例来说是一样的,用类访问更方便,此时可以声明静态属性
  16. //静态属性在编译阶段初始化,在执行阶段可以更改
  17. public static $nationality = 'CHINA';
  18. //抽象属性, 默认值是null
  19. public $price;
  20. }
  21. //类成员的访问 首先实例化对象
  22. $user1 = new User();
  23. echo $user1->name.'的年龄是'.$user1->age;
  24. //结果是:Bob的年龄是20
  1. //可以实例化后修改当前实例的
  2. $user1->name = 'Tom';
  3. $user1->age = 18;
  4. echo $user1->name.'的年龄是'.$user1->age;
  5. //结果是:Tom的年龄是18
  1. //访问静态属性用两个冒号 ::
  2. echo $user1::$nationality;
  3. //结果是:CHINA
  4. //静态属性一样可以修改
  5. $user1::$nationality = 'USA';
  6. echo $user1::$nationality;
  7. //结果是:USA
  1. //抽象属性的访问
  2. var_dump($user1->price);
  3. // NULL
  4. // 抽象属性的修改
  5. $user1->price = 20;
  6. echo $user1->price;
  7. //结果是:20

总结:我们用class关键字可以声明一个新类,用new方法实例化一个类的对象。类属性的访问用”->”,静态属性用 “::”。并且类属性可以修改。

Correcting teacher:天蓬老师天蓬老师

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