PHP面向对象(一)

声明语法

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:30 a是一个复合数据,
我们要想访问 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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值