最新消息:发现真没时间折腾VPS,最近又换了个空间。呵呵

PHP学习(16) 对象

PHP中的对象相对其它语言,比如Java、C#来说要简单很多。它没有重载(不能存在相同的方法名),继承也相对简单。

1.声明类

类的声明主要包括类本身的声明以及方法、属性、继承、构造函数的声明。这些东西说起来一堆,看代码就很简单了。看如下代码。

PHP
<?php
class Person {
    // 声明属性
    var $name;
    // 给属性设置默认值。默认值只能是简单的常量,不能有计算。
    var $age = 20;
    // 构造函数
    function Person($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}
// 子类的声明
class Employee extends Person {
    var $salary;
    // 构造函数
    function Employee($name, $age, $salary) {
        // 调用父类构造函数
        $this->Person($name, $age);
        $this->salary = $salary;
    }
    // 方法声明
    function add_salary($add) {
        $this->salary += $add;
        return $this->salary;
    }
}

2.创建和访问对象
在PHP中,可以使用$object = new Class;来创建对象。其中类名可以直接写,也可以用变量表示。访问对象用->。比如访问属性$object->propertyname,访问方法$object->mathodname();可以看如下代码。

PHP
<?php
// 直接用类名创建对象
$employ = new Employee('Dick', 20, 3000);
// 用变量创建对象
$class_name = 'Employee';
$employ = new $class_name('Dick', 20, 3000);
// 访问属性
$name = $employ->name;
// 调用方法
$added_salary = $employ->add_salary(1000);

3.自省
因为在PHP中,自省用到的地方不是很多,所以就不详细说了,如果想看详细的资料,可以看官方的说明。
class_exists() 查看类是否存在
get_ declared_ classes() 查看已经定义的类
get_ parent_ class() 取得父类
get_ class() 取得对象的类名
method_ exists() 对象中是否存在某个函数
property_ exists() 对象中是否存在某个属性
get_ class_ methods() 取得类定义的函数
get_ class_ vars() 取得类定义的属性
get_ object_ vars() 取得对象的值的数组


参考资料:
《PHP程序设计》,2003,第六章 对象

转载请注明:宇托的狗窝 » PHP学习(16) 对象

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址