關於PHP中的Class的幾點個人看法
來源:互聯網
上載者:User
以我的觀點來說說PHP中的Class,用於表達的語言都是非正式的語言,也不能確定是否正確。
建立一個類很簡單:
class my_class {}
類到底幹什麼呢?很多人都說是什麼黑匣子,我在這裡稱它為一個獨立的整體。我們只知道類名,而不知道裡面有什麼東西。那麼,該如何使用這個類呢?
首先:要知道它裡面是否定義了公用的變數--專業術語上稱它為“屬性”。
其次:要知道它裡面定義了什麼函數--專業術語中稱它為“方法”。
我都被這些專業術語搞糊塗了,所以乾脆不理它了。
類中的如何定義公開變數,它有什麼作用呢?
很簡單,我們來擴充 my_class 類:
class my_class
{
var $username;
}
看上面很簡單,我們定義了一個公用的變數,只是用 var+空格+普通變數名 構成。它有什麼用呢?考慮一下函數中,如果我們要訪問函數外的變數,是不是要先 global 一下呢?這個想實現的效果也是如此,它是想讓這個類中的所有函數都能訪問它,而它區別於函數的一個地方,是類的外部也可以隨時訪問和控制這個變數,我隨後再講外部如何訪問它。還有一個區別,不能用複雜的語句給這個變數賦值(具體的等理解了類以後自己去看規則)。
給它一個預設值:
class my_class
{
var $username = "深空";
}
OK,定義了一個公用的變數了,接下來定義一個函數(也就是所謂的“方法”):
class my_class
{
var $username = "深空";
function show_username()
{
}
}
這個定義函數跟普通的定義函數形式上沒什麼區別了。簡單就好,定義一個列印 $username 的函數:
class my_class
{
var $username = "深空";
function show_username($username)
{
echo $username;
}
}
到這裡可能某些人開始迷糊了,呵呵,最關鍵的就是這裡了,看清楚了。現在有三個 $username 了。到底哪個是哪個啊~~
函數所帶的形參,不用解釋了吧?這個函數功能就是列印形參所接收的值,也就是如果:
show_username("豬頭深空");
那麼它將列印 “豬頭深空” ,就這麼簡單。
怎麼樣訪問這個函數?肯定不是我上面說的那樣直接 show_username("豬頭深空"); 了,別急,類有類的一套。如下:
$Name = new my_class();