在PHP5中,在属性定义能够不设置初值,或者赋予如下红色类型的初值。php
PHP中简单类型有8种,分别是:数组
数值类型this
boolean 布尔类型spa
integer 整型code
float 浮点型,也称为 double 双精度浮点型orm
string 字符串对象
复合类型内存
array 数组资源
object 对象字符串
特殊类型
resource 资源
NULL
<? class A{ } class Person{ private $name; //定义属性未赋值。 private $name1 = NULL; //定义属性空值 ,与未赋值同样。 private $married = true; //用布尔型为属性赋值。 private $grade = 0; //用整形数值为属性赋值 private $eyesight = 0.1; //用浮点型数字为属性赋值 private $nationality = "China"; //用字符串为属性赋值 private $arr = array("foo" => "bar", 12 => true); // 用数组为属性赋值 //private $a = new A(); //PHP5不容许,建立对象类型赋值给属性 //private $res = opendir("abc"); // PHP5不容许使用资源类型 //private $g = $this->grade; //不容许用前面定义的属性为新属性赋值。 } $a = new Person(); ?>
在上面例子中,第13行,尝试建立对象并将值赋予属性$a 会报错。
第14行,创建资源并复制给$res会出现错误。
第15行,使用上面定义的属性为新属性赋值也会产生错误。
在Java中,能够做13行和15行这样的操做。 PHP5中定义属性的默认值,被限制到最简单的方式。其它的操做,交给构造方法操做,后面内容中将讲解构造方法。
普通变量间的传值方法,就是值的赋值。好比数组。
<? $arr = array("foo" => "bar", 12 => true); $a = $arr; $arr[foo] = "new"; print_r($arr); echo '<br />'; print_r($a); ?>
程序输出:
Array ( [foo] => new [12] => 1 ) Array ( [foo] => bar [12] => 1 )
而指向对象的变量,是一个引用变量。在这个变量里面存储的是所指向对象的内存地址。引用变量传值时,传递的是这个对象的指向。而非复制这个对象。
$this 指当前对象。
$this-> 调用当前对象的属性或者方法。
在类中使用$this-> 调用一个未定义的属性时,PHP5会自动建立一个属性供使用。
这个被建立的属性,默认的方法权限是public。
<? class A { public $name = "Gonn"; public function __construct() { $this -> age = "24"; } } $p = new A(); echo $p->name; echo '<br />'; echo $p->age; ?>
输出
Gonn 24