Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:public $Nico;不要这样命名变量, 请遵循行业规范, 首字母大写只用到类名上
<?php
//加载公共的模板
// 1.条件加载
include 'nav.php';
// 支持双引号
include "nav.php";
//可以加上括号(并不是函数,知识语言结构)
include("nav.php");
//支持变量
$file = "nav.php";
include $file;
// 支持字符串拼接
$file = "nav";
include $file . '.php';
// 加载外部文件一般需要做一个检测
$file = 'nav.php';
if (file_exists($file) && is_file($file)) {
include "{$file}";
} else
include 'nav2.php';
<?php
//include_once
// 全局成员:函数,常量,类,接口
// 不支持函数的重载,因此在一个程序中不允许出现同名函数
include 'common.php';
include 'common.php';
//include_once加载前会检查文件是否已经被加载过了
include_once 'common.php';
include_once 'common.php';
echo fetch();
条件加载:不会因为文件加载失败而终止程序的执行
<?php
//强制加载
//如果加载失败,终止当前脚本,与条件加载不一样
require 'config.php';
// 如果没有指定加载的文件是无法执行下面的打印输出
echo '如果看到我,证明程序执行到这里了';
其他的属性和条件加载类似
//只要在同一个作用域内,文件外部变量可以在被加载的文件中使用
//include相当于是代码复制
$siteName = 'php中文网';
include 'file.php';
echo '<hr>';
// 函数作用域
function text()
{
global $siteName;
include 'file.php';
echo $email;
}
text();
echo '<hr>';
function text2()
{
include 'file2.php';
}
text2();
echo $goods ?? '默认商品';
PHP 面向对象(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。
变量:数据的复用,函数:代码的复用(变量+函数=对象)
对象也是实现代码复用的手段
// 1.类的声明
class Goods
{
}
//2.类的实例化:创建对象的过程,new
$goods = new Goods();
//类的实例和对象的区别:如果在不引起误会的场景下,实例与对象是同义词
禁止的属性(非法属性) 1.不能用变量,2.不能用类属性/类的方法,3.不能用表达式,4.不能用函数
常规属性:非静态属性/动态属性(字符串,整数,数组,nowdoc 是合法的)
二 静态属性(本质上还是变量)
如果一个属性的值,对所有实例来说都是一样的,用类访问更方便,此时可以声明位静态的
静态属性(直接调用,不需要实例化)
三 抽象属性:没有被初始化,默认是 Null;
->
访问类中的属性变量::
双冒号,访问静态属性(范围解析符)
<?php
//类中的成员
class Nicola
{
//类属性:类中的变量,符合php变量的规范
//类中成员的作用域:访问限制
//类属性就是有访问限制的变量
//一.常规属性:非静态属性/动态属性
// 字符串,整数,数组,nowdoc是合法的
public $ni = '尼古拉';
// 禁止的属性(非法属性)
// 1.不能用变量
// public $user = $abc;
//2.不能用类属性/类的方法
// public $Nicola = $this->nicola;
//3.不能用表达式
// public $Nicola = '$abc+$v+$n';
//4.不能用函数
// public $Nicola = time();
// 二 静态属性(本质上还是变量)
// 如果一个属性的值,对所有实例来说都是一样的,用类访问更方便,此时可以声明位静态的
public static $Nicola = '尼古拉特斯拉';
// 可以不需要实例化为对象即可调用
// 三 抽象属性:没有被初始化,默认是Null;
public $Nico;
}
// $nicola = '尼古拉';
$nico = new Nicola;
// - `->` 访问类中的属性变量
echo "{$nico->ni}";
// - `::`双冒号,访问静态属性(范围解析符)
echo Nicola::$Nicola;
本节课学习了面向对象的入门知识,对类和对象有一定的认识和了解,结合之前学习函数知识的基础有一定的理解,但还是很懵懂,毕竟刚接触这一个新的知识点.用一句话概括,对象目的就是实现代码复用的一种手段.