PHP与MySQL程序设计 第四版 第六章 面向对象的PHP 笔记

第103页 oop的三个基本概念:封装 继承 多态

第106页 属性作用域
php支持五种属性作用域 : public private protected final static

第108页 用__set()方法设置属性
修改方法或者称为设置方法,负责隐藏属性的赋值实现,并在为类属性赋值之前验证类数据,它接受一个属性名和相应的值作为输入,如果方法成功执行就返回true,否则返回false

用__get()方法获取属性
访问方法或者获取方法负责封装获得类变量所需的代码,它接受一个属性名作为输入参数,既要获取该属性的值,它在成功执行时返回true,否则返回false
例子

class Employee{
    public $name;
    function __set($propName,$propValue){
        $this->$propName=$propValue;
    }
    function __get($name)
    {
        return $name;
    }

}

$employee=new Employee();
$employee->name="阿举";
$employee->title="www.zhangxingju.com";
echo "name:".$employee->name;
echo "
";
echo "Title:".$employee->title;     //__set方法
echo "
";
echo $employee->test;    //__get方法

//name:阿举
//Title:www.zhangxingju.com
//test

第113页 abstract
抽象方法很特殊,只在父类中声明,但在子类中实现,只有声明为abstract的类可以申明抽象方法

第114页 类型提示

类型提示

第116页 调用无关的构造函数

调用无关的构造函数

第120页 自动加载对象
__autoload函数 ,在php官方手册中,有了新的函数可以替代它,并且官方建议不使用autoload了,以后可能会废除
链接 http://php.net/manual/zh/language.oop5.autoload.php
spl_autoload_register() 提供了一种更加灵活的方式来实现类的自动加载

// 或者,自 PHP 5.3.0 起可以使用一个匿名函数
spl_autoload_register(function ($class) {
include ‘classes/’ . $class . ‘.class.php’;
});