PHP笔记(载入文件,类和错误异常处理)

1 载入文件

1.1 使用 require()include() 函数

require()include() 函数可以将一个文件载入到PHP脚本中,该文件可以包含PHP语句,文本,HTML标记,PHP函数或PHP类。
requireinclude 的不同在于,导入失败 require 会报错,而 include 只是给出一个警告。
PHP在导入文件时,并不会查看所需文件的扩展名,这就意味着只要不想直接调用这个文件,就可以任意命名该文件,当使用 require() 语句载入文件时,它会作为PHP文件的一部分被执行。因此,可以使用任何扩展名来命名包含文件,但要尽量遵循一个约定,尽量地将扩展名命名为 .inc.php
需要注意的问题还有一个就是,如果扩展名为 .inc 或其他一些非 .php 的扩展名保存在web服务器文档中,用户可以很容易在浏览器直接载入他们以此来查看后端源代码,以此包含文件应该要保存在服务器访问文档树之外,或者直接使用标准的文件扩展名。

1.2 使用 auto_prepend_fileauto_append_file

比方说有时候想要固定页面的页眉之类的固定模块在多个页面上,此除了使用 require 以及 include 函数外,还可以使用配置文件 php.ini 中的 auto_prepend_fileauto_append_file,这两个选项可以保证他们在每个页面都被载入。

1.3 .htaccess 文件

以上的文件有一个弊端就是这样会导致所有文件都载入文件,但是有些时候可能比不需要这样,此时如果使用的Apache Web服务器就可以创建 .htaccess 文件,此文件可以对单个目录进行不同配置选项的修改,该文件需要包含例如以下的两行代码:

php_value auto_prepend_file "/importH.inc"
php_value auto_append_file "/importE.inc"

2 类

当创建一个PHP类的时候,必须使用关键词 class

2.1 类的结构

2.1.1 关键字

如同C#一样,PHP也有一些关键字,这些关键字与变量的作用域相关:

  • public:默认,在类的内部外部都可以访问
  • private:在类的内部可以访问,但不能被继承
  • protected:在类的内部可以访问,可以被继承

2.1.2 构造函数与析构函数

PHP的构造函数的设置与其他操作的声明一样,只是其名称必须为 __construct(),PHP支持函数重载。
与构造函数的名称类似,一个类的析构函数必须是 __destruct(),析构函数不能有任何参数。

2.1.3 类的属性

在一个类中可以使用一个特殊的指针 $this 来指向当前类,而访问实例的属性,则可以使用 $this->attribute 的形式来引用,要注意的是PHP的变量必须以 $ 开头,但在使用 $this->$name 的形式访问数据时,此 $name 指的是可以是去除 $ 符号的变量名称。
通常从类的外部直接访问类的属性是糟糕的想法,此时可以使用 __get()__set() 函数来实现对属性的访问和设置。

2.1.4 继承与重载

PHP的继承使用的是 extends 关键字,形式如:

class B extends A {}

其中A为父类,B为子类,子类可以重载父类的属性以及函数,此时重载与普通的声明属性以及函数并没有区别。

使用 parent 关键字允许调用父类操作的最初版本,比如在B类中调用A类的 fun1 函数,可以使用 parent::operation();

使用 final 关键字禁止继承和重载,如:

class A {
    final function operation() {
        echo "something";
    }
}

2.1.5 Per-Class 常量与实现静态方法

使用 Per-Class 常量,这个常量可以在不需初始化该类的情况下使用,声明方法如下:

<?php
    class Math {
        // 声明 Per-Class 常量
        const pi = 3.14159;
    }
    echo Math::pi; // 调用常量
?>

PHP还允许使用 static 关键字适用于允许在未初始化类的情况下可以调用,声明方法如下:

class Math
{
    // 声明方法
    static function squared($input)
    {
        return $input*$input;
    }
}
// 调用方法
echo Math::squared(8);

2.2 检查类的类型和类型提示

instanceof 关键字允许检查一个对象的类型,可以检查一个对象是否特定类的实例,eg:

$b instanceof B; // 返回true

3 错误和异常处理

异常的处理基本就是代码在 try 代码块被调用执行,但与很多语言不一样,PHP并不会自动抛出异常,需要手动抛出,以使用 throw 的关键字的形式将处罚异常处理机制。而在捕获阶段就需要使用到 catch 代码块

3.1 Exception

PHP为异常处理提供了内置类 Exception,其构造函数需要两个参数,分别是 错误信息 以及 错误代码号,该类还提供如下内置方法:

  • getCode():获取传递给构造函数的错误代码
  • getMessage():获取传递给构造函数的错误消息
  • getFile():返回产生异常代码文件的完整路径(使用 __FILE__ 可以读取当前文件路径)
  • getLine():返回行号(使用 __LINE__ 可以读取行号)
  • __toString:允许简单的显示一个 Exception 对象,并且给出以上所有方法提供的消息

注意 Exception 类可以被继承,但是以上方法除了 __toString 外都无法重载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值