面向对象 - 属性 ¶
作者:KK
发表日期:2017.02.14
属性的声明 ¶
类里面有一种叫属性
(property)的元素:
class User{
public $name;
}
现在类里就声明了一个属性,属性名称叫name
前面的public先不解释,但后面加空格后,要以$
开头,写一个变量名,它就是属性名
属性的使用 ¶
声明了属性后,并不是让它摆着装饰的,而是可以拿来用的,接下来看看怎么使用:
$user = new User();
$user->name = 'Jay'; // 属性就相当于类的变量,可以赋值
echo $user->name; // 也可以取值
像使用平时的变量一样赋值取值就可以了,只是前面要先加上类的实例变量名称(比如 $user),然后在变量名称后面加上->
这个箭头符号,再书写属性名称
但注意箭头后面的直接就是属性名称,而不是以$
开头($user->$name是错的,$user->name才正确)
每个实例的属性都是独立的,互不干扰 ¶
$user1 = new User();
$user1->name = 'Jay';
$user2 = new User();
$user2->name = 'Marie';
echo '用户1的名字是:' . $user1->name . '</br>';
echo '用户2的名字是:' . $user2->name;
上面user2可赋值name属性后,user1的并不会被改变,因为两个是不同的实例
能定义默认值 ¶
声明属性的时候可以设置它的默认值,以免每次new都要赋值
class User{
//定义了一个 性别 属性,默认值是“boy”
public $gender = 'boy';
public $name;
}
$user = new User();
echo $user->gender; // boy
echo $user->name; //空的,因为没有定义默认值
就像平时定义变量值一样写上去就行了
可以声明多个属性 ¶
直接写多几个public $属性名称
就可以了
class User{
public $name = 'Jay';
public $gender = '男';
public $age = 14;
}
$user = new User();
print_r([
$user->name,
$user->gender,
$user->age,
]);