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; // 错误 }例如: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();