Blogger Information
Blog 62
fans 7
comment 2
visits 58138
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文件加载与面向对象入门知识
我是郭富城
Original
644 people have browsed it

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

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 总结

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

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:public $Nico;不要这样命名变量, 请遵循行业规范, 首字母大写只用到类名上
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
1 comments
我是郭富城 2020-05-02 21:27:23
好的,收到
1 floor
Author's latest blog post