博主信息
博文 3
粉丝 0
评论 0
访问量 3044
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP:文件的加载与类的初识
夸父逐日
原创
770人浏览过
在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方法实例化一个类的对象。类属性的访问用”->”,静态属性用 “::”。并且类属性可以修改。

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:这些基本知识一定要多注意
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学