PHP面向对象(一)

来源:互联网 发布:无敌淘宝网在线阅读 编辑:程序博客网 时间:2024/05/17 04:34

声明语法

class 类名 {
}

class People {    public $name = 'nobody';    public $height = 30;    public function cry() {        echo '呱呱坠地';    }}

有了类,就可以产生对象了.
new 类名(); 这个语句返回对象
返回的对象 赋给一个变量

$a = new People();print_r($a);

这个a是什么 ,a对象;就是一个箱子,里面装了N多属性和属性值
a=name:nobody,height:30a是一个复合数据,
我们要想访问a,a里面 name的值,
我们可以怎么访问呢?
答:肯定是得通过a访.$a->属性名,就可访问该属性的值

echo $a->name,'<br />',$a->height,'<br />';$b = array('name'=>'nobodyB','height'=>'40B');echo $b['name'],'<br />',$b['height'];echo '<br />';// ==== 对象调用其方法====//$a->cry();

声明类的时候的注意点

1、关于属性值,可以声明属性并赋值,也可以声明属性先不赋值
如果不赋值,则属性的初始值是NULL
2、关于PHP中的类,请注意,属性必须是一个”直接的值”
是8种类型任意的”值”.
不能是: 表达式 1+2 的值
不能是: 函数的返回值 time();
这点和java不一样.

class Human {    // public $age = time(); // 错误    // public $age = 1+2; // 错误}

方法的注意点

php中的函数不能重复定义,这点和js不一样

// 这个t是我的自定义函数function t() {    echo 't';}// 我再定义一个t函数function t() {    echo 'tt';}//  运行就会发生下面的错误//  Fatal error: Cannot redeclare t() (previously declared in D:\www\1105\05.php:*) in                      **.php on line **

系统函数也不能定义方法

例如:time()是系统函数,我们在全局中就不能再定义time()方法

function time(){    echo "当前的时间";}//  Fatal error: Cannot redeclare time() in **.php on line *

但是,类中的方法,可以理解”包在类范围内的函数”
和全局的函数不是一回事,因此,可以重名

class clock {    public function time() {        echo '现在的时间戳是aaaa';    }    public function t() {        return '内部的t';    }    public function time2() {        echo '现在的真正时间戳是',time(),'<br />';  // 注意此处调用的是系统的time()函数        echo $this->t();   // 注意,此处调用的是自身的t函数;    }}$c = new clock();$c->time();echo '<br />';$c->time2();
0 0
原创粉丝点击