PHP5類方法
過程:過程是編制程序時定義的一個語句序列,用來完成某種指定的操作。
函數:函數有返回值,也是定義的語句序列。
方法:在面向對象概念中,類裡面的一段語句序列。
一般來說,在面向對象概念中,函數和方法兩個名詞是通用的。
通過方法讀取屬性
下面的例子將屬性設置為private ,同時聲明了public的getName()方法,用來獲取屬性$name的值,調用getName()方法就會通過 return $this->name 返回 $name 的值。
<?php
class Person
{
private $name = “NoName”; //private成員$name
public function getName() {
return $this->name;
}
}
$newperson = new Person();
echo ” ” . $newperson->getName();
?>
注意:這裡,方法內部調用本地屬性時,使用 $this->name來獲取屬性。在這個例子中,設置了公開的getName()方法,即用戶只能獲取$name, 而無法改變他的值。這就是封裝的好處。
封裝指的是將對象的狀態信息(屬性)和行為(方法)捆綁為一個邏輯單元的機制。
PHP5中通過將數據封裝、聲明為私有的(private),再提供一個或多個公開的(public)方法實現對該屬性的操作,以實現下述目的:
防止對封裝數據的未經授權的訪問。使用者只能通過事先定制好的方法來訪問數據,可以便地加入控制邏輯,限制對屬性的不合理操作;
有利於保證數據的完整性;
便於修改,增強代碼的可維護性;
方法的參數
通過方法定義時的參數,可以向方法內部傳遞變量。
如下第5行,定義方法時定義了方法參數$_a。使用這個方法時,可以向方法內傳遞參數變量。方法內接受到的變量是局部變量,僅在方法內部有效。可以通過向屬性傳遞變量值的方式,讓這個變量應用於整個對象。
代碼如下 復制代碼<?php
class Person
{
private $a;
function setA($_a) {
$thia->a = $_a;
}
function getA() {
return $this->a;
}
}
$newperson = new Person();
$newperson->setA(100);
echo $newperson->getA();
?>
如果聲明這個方法有參數,而調用這個方法時沒有傳遞參數,或者參數數量不足,系統會報出錯誤。如果參數數量超過方法定義參數的數量,PHP就忽略多於的參數,不會報錯。可以在函數定義時為參數設定默認值。 在調用方法時,如果沒有傳遞參數,將使用默認值填充這個參數變量。
代碼如下 復制代碼<?php
class A
{
public $name = “tom”;
}
class Person
{
private $a;
function setA($_a) {
$this->a = $_a;
}
function getA() {
return $this->a;
}
}
$a1 = new A();
$p = new Person();
$p->setA($a1);
echo $p->getA()->name;
?>
屬性的使用:通過引用變量的-> 符號調用變量指向對象的屬性。
在方法內部通過 $this-> 符號調用同一對象的屬性。
代碼如下 復制代碼<?php
class Person
{
public $name = “NoName”; //定義public屬性$name
public $age = 20; //定義public屬性$age
}
$p = new Person(); //創建對象
echo ” ” . $p->name; //輸出對象$p的屬性$name
echo “<br />”;
echo ” ” . $p->age; //輸出$age屬性
?>
PHP5類中的屬性
我們還可以改變屬性的值,當然要注意的改變屬性的值是通過public來修飾的
我們修改一下這個例子:
代碼如下 復制代碼<?php
class Person
{
public $name = “NoName”; //公共變量$name
public $age = 20; //公共變量$age
}
$p = new Person();
$p->name = “Tom”; //我是Tom
$p->age = 25 ; //年齡25
echo ” ” . $p->name; //輸出名字
echo “<br />”;
echo ” ” . $p->age; //年齡
?>
創建一個Person的對象,改變這個對象的屬性。為它命名,查看它的名字。你就是機器裡面這個Person對象的上帝,按照你定義的規則,這個實實在在內存中的Person對象被創建了,而且它有了可以改變的屬性。
屬性的初值
在PHP5中,在屬性定義可以不設置初值,或者賦予以下紅色類型的初值。
PHP中簡單類型有8種,分別是:
四種標量類型:
布爾型(boolean)
整型(integer)
浮點型(float)(浮點數,也作“double”)
字符串(string)
兩種復合類型:
數組(array)
對象(object)
最後是兩種特殊類型:
資源(resource)