博客列表 >文件加载与面向对象入门知识

文件加载与面向对象入门知识

我是郭富城
我是郭富城原创
2020年05月02日 19:02:09645浏览

文件加载与面向对象入门知识

1. 理解并实例演示条件加载与强制加载,去重加载等

1.1 条件加载

  • 条件加载支持单双引号
  1. <?php
  2. //加载公共的模板
  3. // 1.条件加载
  4. include 'nav.php';
  5. // 支持双引号
  6. include "nav.php";
  • 可以加上括号(并不是函数,知识语言结构)
  1. //可以加上括号(并不是函数,知识语言结构)
  2. include("nav.php");
  • 支持变量
  1. //支持变量
  2. $file = "nav.php";
  3. include $file;
  • 支持字符串拼接
  1. // 支持字符串拼接
  2. $file = "nav";
  3. include $file . '.php';
  • 加载外部文件一般需要做一个检测
  1. // 加载外部文件一般需要做一个检测
  2. $file = 'nav.php';
  3. if (file_exists($file) && is_file($file)) {
  4. include "{$file}";
  5. } else
  6. include 'nav2.php';
  • include_once 加载前会检查文件是否已经被加载过了
  1. <?php
  2. //include_once
  3. // 全局成员:函数,常量,类,接口
  4. // 不支持函数的重载,因此在一个程序中不允许出现同名函数
  5. include 'common.php';
  6. include 'common.php';
  7. //include_once加载前会检查文件是否已经被加载过了
  8. include_once 'common.php';
  9. include_once 'common.php';
  10. echo fetch();

条件加载:不会因为文件加载失败而终止程序的执行

1.2 强制加载

  • 如果加载失败,终止当前脚本,与条件加载不一样
  1. <?php
  2. //强制加载
  3. //如果加载失败,终止当前脚本,与条件加载不一样
  4. require 'config.php';
  5. // 如果没有指定加载的文件是无法执行下面的打印输出
  6. echo '如果看到我,证明程序执行到这里了';
  • require_once 加载前会检查文件是否已经被加载过了

    其他的属性和条件加载类似

1.3 文件加载与作用域

  • include 相当于是代码复制
  1. //只要在同一个作用域内,文件外部变量可以在被加载的文件中使用
  2. //include相当于是代码复制
  3. $siteName = 'php中文网';
  4. include 'file.php';
  5. echo '<hr>';
  6. // 函数作用域
  7. function text()
  8. {
  9. global $siteName;
  10. include 'file.php';
  11. echo $email;
  12. }
  13. text();
  14. echo '<hr>';
  15. function text2()
  16. {
  17. include 'file2.php';
  18. }
  19. text2();
  20. echo $goods ?? '默认商品';

2. 实例演示类与对象, 属性值与类成员访问

2.1 面向对象

PHP 面向对象(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。

  • 类: 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。
  • 成员变量(属性):定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可称为对象的属性。
  • 成员函数(方法):定义在类的内部,可用于访问对象的数据。
  • 对象:是类的实例(对象和类之间界限并不清晰)。

    变量:数据的复用,函数:代码的复用(变量+函数=对象)
    对象也是实现代码复用的手段

2.2 类的声明与实例化

  • 类的实例化:创建对象的过程,new
  • 类的实例和对象的区别:如果在不引起误会的场景下,实例与对象是同义词
  1. // 1.类的声明
  2. class Goods
  3. {
  4. }
  5. //2.类的实例化:创建对象的过程,new
  6. $goods = new Goods();
  7. //类的实例和对象的区别:如果在不引起误会的场景下,实例与对象是同义词

2.3 类成员(类属性,类方法,类常量)

2.3.1 类属性

  • 一 常规类属性:类中的变量,符合 php 变量的规范
  • 类属性是有访问限制的变量
  • 禁止的属性(非法属性) 1.不能用变量,2.不能用类属性/类的方法,3.不能用表达式,4.不能用函数

    常规属性:非静态属性/动态属性(字符串,整数,数组,nowdoc 是合法的)

  • 二 静态属性(本质上还是变量)
    如果一个属性的值,对所有实例来说都是一样的,用类访问更方便,此时可以声明位静态的

    静态属性(直接调用,不需要实例化)

  • 三 抽象属性:没有被初始化,默认是 Null;

2.3.2 对象运算符/成员访问符

  • -> 访问类中的属性变量
  • ::双冒号,访问静态属性(范围解析符)
  1. <?php
  2. //类中的成员
  3. class Nicola
  4. {
  5. //类属性:类中的变量,符合php变量的规范
  6. //类中成员的作用域:访问限制
  7. //类属性就是有访问限制的变量
  8. //一.常规属性:非静态属性/动态属性
  9. // 字符串,整数,数组,nowdoc是合法的
  10. public $ni = '尼古拉';
  11. // 禁止的属性(非法属性)
  12. // 1.不能用变量
  13. // public $user = $abc;
  14. //2.不能用类属性/类的方法
  15. // public $Nicola = $this->nicola;
  16. //3.不能用表达式
  17. // public $Nicola = '$abc+$v+$n';
  18. //4.不能用函数
  19. // public $Nicola = time();
  20. // 二 静态属性(本质上还是变量)
  21. // 如果一个属性的值,对所有实例来说都是一样的,用类访问更方便,此时可以声明位静态的
  22. public static $Nicola = '尼古拉特斯拉';
  23. // 可以不需要实例化为对象即可调用
  24. // 三 抽象属性:没有被初始化,默认是Null;
  25. public $Nico;
  26. }
  27. // $nicola = '尼古拉';
  28. $nico = new Nicola;
  29. // - `->` 访问类中的属性变量
  30. echo "{$nico->ni}";
  31. // - `::`双冒号,访问静态属性(范围解析符)
  32. echo Nicola::$Nicola;

3 总结

本节课学习了面向对象的入门知识,对类和对象有一定的认识和了解,结合之前学习函数知识的基础有一定的理解,但还是很懵懂,毕竟刚接触这一个新的知识点.用一句话概括,对象目的就是实现代码复用的一种手段.

上一条:session下一条:面向接口编程与trait
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
我是郭富城2020-05-02 21:27:231楼
好的,收到