導航:首頁 > 編程語言 > php類和對象區別

php類和對象區別

發布時間:2024-04-07 16:50:10

php中的類、對象、屬性、方法,能不能這樣理解

你的理解是對的。類就是指猛純毀一類人、事、物。對象就是類裡面具體都某個個體,所以褲遲稱枝備為實例化一個對象。屬性就是這個對象所擁有的特性,方法就是該對象能夠做的事。所以你的理解是正確的。

❷ 請問PHP中的面向對象,java面向對象一樣嗎。如果不一樣,有什麼區別(有好的回答的的話回加分的)

沒有哪2種語言的面對對象做法是完全一樣。所以回答是「不一樣」。
由於各自語言的特性,細節區別非常多,不可勝訴。
總體上,php在設計對象模型式參考了java的設計,但改成適應php自身的形式。
php沒有java的自動化class loader,在類的讀取和對象創建上就要注意先後。php的自動讀取要手動設置。
php由於自身是動態類型語言,變數本身的類型動態,就沒有java的重載功能。這也導致類設計上的一些很大區別。
php的動態特性和具有自我反射能力,可以把方法名稱當成「消息」發送,在運行時判斷對象是否能接收消息,java的靜態就不能直接應用這樣的設計。
php6.x之前估計不會類似java的有名字空間或包管理機制。
php的對象可以動態地後添加屬性增減數據,java是禁止這樣做的。
php的方法名稱還不區分大小寫。
php的動態特性也就不需要模板泛型編程的特性。在java中泛型也占很重要的一部分。
等等等等
相同點,都具有final,抽象類,介面,變數可見度等語法。
總之,這些不同都是由語言特性和適用場合決定的

❸ php類和對象問題

$this
的含義是表示
實例化後的
具體對象!
我們一般是先聲明一個類,然後用這個類去實例化對象!
但是,當我們在聲明這個類的時候,想在類本身內部使用本類的屬性或者方法。應該怎麼表示呢?
例如:
我聲明一個User類!它只含有一個屬性
$name;
class
User
{
public
$_name;
}
現在,我給User類加個方法。就用getName()方法,輸出$name屬性的值吧!
復制PHP內容到剪貼板
PHP代碼:
class
User
{
public
$name;
function
getName()
{
echo
$this->name;
}
}
//如何使用呢?
$user1
=
new
User();
$user1->name
=
'張三';
$user1->getName();
//這里就會輸出張三!
$user2
=
new
User();
$user2->name
=
'李四';
$user2->getName();
//這里會輸出李四!
怎麼理解呢?
我上面創建了兩個User對象。分別是
$user1

$user2

當我調用
$user1->getName()的時候。
上面User類中的代碼
echo
$this->name
;
就是相當於是
echo
$user1->name;
----------------------------------------->>>補充一下>>>
有static修飾的變數和函數不能出現$this
你看到的函數一定沒有static
建議你系統的學習一下PHP,這樣瞎猜是很浪費時間的
static
$a1和self::$a1或者$a::$a1是一起使用的。
var
$a1和$this->a1是一起使用的
class
Abc{
static
$a1;
}
class
Abc{
var
$a1;
}
兩個$a1是不同的。
第一個用self::$a1或者$a::$a1引用,
第二個用$this->$a1或者$a->a1引用
首先static的函數里不能出現$this,只能是self
class
Abc{
public
static
$a1
=
"im
a1!<br/>";
public
static
function
go()
{
echo(self::$a1);
}
}
Abc::go();
?>

❹ php裡面,什麼叫對象內部什麼是對象外部

知道對象概念就了解了

類的概念:類是具有相同屬性和服務的一組對象的集合。它為屬於該類的所有對象提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。在面向對象的編程語言中,類是一個獨立的程序單位,它應該有一個類名並包括屬性說明和服務說明兩個主要部分。

對象的概念:對象是系統中用來描述客觀事物的一個實體,它是構成系統的一個基本單位。鍵銀一個對象由一組屬性和對這組屬性進行操作的一組服務組成。從更抽象
的角度來說,對象是問題域或實現域中某些事物的一個抽象,它反映該事物在系統中需要保存的信息和發揮的作用;它是一組屬性和有權對這些屬性進行操作的一組
服務的封裝體。客觀世界是由對象和對象之間的聯系組成的。
類與對象的關系就如模具和鑄件的關系,類的實例化結果就是對象,而對一類對象的抽象就是類.類描述了一組有相同特性(屬性)和相同行為(方法)的對象。
上面大概就是它們的定義吧, 也許你是剛接觸面象對象的朋友, 不要被概念的東西搞暈了,
給你舉個列子吧,如果你去中關村想改檔買幾台組裝的PC機,到了那裡你第一步要干什麼,
是不是裝機的工程師和你坐在一起,按你提供的信息和你一起完成一個裝機的配置單呀,
這個配置單就可以想像成是類,它就是一張紙,但是它上面稿殲宴記錄了你要買的PC機的信息,如果用這個配置單買10台機器,那麼這10台機子,都是按這個配置單
組成的,所以說這10台機子是一個類型的,也可以說是一類的。那麼什麼是對象呢,類的實例化結果就是對象,
用這個配置單配置出來(實例化出來)的機子就是對象, 是我們可以操作的實體, 10台機子, 10個對象。
每台機子都是獨立的,只能說明他們是同一類的,對其中一個機做任何動作都不會影響其它9台機器,但是我對類修改,
也就是在這個配置單上加一個或少一個配件, 那麼裝出來的9個機子都改變了, 這是類和對象的關系(類的實例化結果就是對象).

❺ JAVA和PHP的區別

java應用的場景比較廣泛,人相對來講也比較多,php主要是用於網站方面,如果是用於建網站的話,php開發比較快速。

1,PHP適合於快速開發,中小型應用系統,開發成本低,能夠對變動的需求作出快速的反應。而Java適合於開發大型的應用系統,應用的前景比較廣闊,系統易維護、可復用性較好。

2,系統的技術架構比較,PHP只能實現簡單的分布式兩層或三層的架構,而JAVA在這方面就十分強大,可以實現多層的網路架構。

3,資料庫訪問比較,PHP對於不同的資料庫採用不同的資料庫訪問介面,所以資料庫訪問代碼的通用性不強,而Java通過JDBC來訪問資料庫,通過不同的資料庫廠商提供的資料庫驅動方便地訪問資料庫,訪問資料庫的介面比較統一。

4,開發成本比較,既然php在諸多方面都不如java優異,那麼php開發出的oa產品何以與java產品競爭呢?在於Php陣營普遍走的是低端路線,而java陣營走的是中高端路線。兩者之間的區域較小。

拓展資料:

Java(計算機編程語言)

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。

Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。

PHP(外文名:PHP: Hypertext Preprocessor,中文名:「超文本預處理器」)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。

它可以比CGI或者Perl更快速地執行動態網頁。

用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標准通用標記語言下的一個應用)文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

❻ php中的類有什麼用和自定義函數有什麼區別

請看PHP手冊18章,裡面的內容你看了就明白。

第18章類與對象(PHP4)
目錄

繼承
構造函數
范圍解析操作符(::)
parent
序列化對象-會話中的對象
魔術函數__sleep和__wakeup
構造函數中的引用
對象的比較



類是變數與作用於這些變數的函數的集合。使用下面的語法定義一個類:

<?php
classCart{
var$items;//購物車中的物品

//將$num個$artnr物品加入購物車

functionadd_item($artnr,$num){
$this->items[$artnr]+=$num;
}

//將$num個$artnr物品從購物車中取出

functionremove_item($artnr,$num){
if($this->items[$artnr]>$num){
$this->items[$artnr]-=$num;
returntrue;
}elseif($this->items[$artnr]==$num){
unset($this->items[$artnr]);
returntrue;
}else{
returnfalse;
}
}
}
?>

上面的例子定義了一個Cart類,這個類由購物車中的商品構成的數組和兩個用於從購物車中添加和刪除商品的函數組成。

警告
不能將一個類的定義分割到多個文件中。也不能將一個類的定義分割到多個PHP塊中,除非該分割是在一個方法聲明內部。以下用法將不起作用:

<?php
classtest{
?>
<?php
functiontest(){
print'OK';
}
}
?>

但是以下用法是可以的:

<?php
classtest{
functiontest(){
?>
<?php
print'OK';
}
}
?>

以下警告僅用於PHP4。

小心
名稱stdClass已經被Zend使用並保留。不能在PHP代碼中定義名為stdClass的類。

小心
函數名__sleep和__wakeup在PHP類中是魔術函數。除非想要與之聯系的魔術功能,否則在任何類中都不能以此命名函數。

小心
PHP將所有以__開頭的函數名保留為魔術函數。除非想要使用一些見於文檔中的魔術功能,否則建議不要在PHP中將函數名以__開頭。

在PHP4中,var變數的值只能初始化為常量。用非常量值初始化變數,需要一個初始化函數,該函數在對象被創建時自動被調用。這樣一個函數被稱之為構造函數(見下面)。

<?php
/*PHP4中不能這樣用*/
classCart{
var$todays_date=date("Y-m-d");
var$name=$firstname;
var$owner='Fred'.'Jones';
/*不過包含有常量的數組可以*/
var$items=array("VCR","TV");
}

/*應該這樣進行*/
classCart{
var$todays_date;
var$name;
var$owner;
var$items=array("VCR","TV");
functionCart(){
$this->todays_date=date("Y-m-d");
$this->name=$GLOBALS['firstname'];
/*etc...*/
}
}
?>
類也是一種類型,就是說,它們是實際變數的藍圖。必須用new運算符來創建相應類型的變數。

<?php
$cart=newCart;
$cart->add_item("10",1);

$another_cart=newCart;
$another_cart->add_item("0815",3);
?>
上述代碼創建了兩個Cart類的對象$cart和$another_cart,對象$cart的方法add_item()被調用時,添加了1件10號商品。對於對象$another_cart,3件0815號商品被添加到購物車中。

$cart和$another_cart都有方法add_item(),remove_item()和一個items變數。它們都是明顯的函數和變數。可以把它們當作文件系統中的某些類似目錄的東西來考慮。在文件系統中,可以擁有兩個不同的README.TXT文件,只要不在相同的目錄中。正如從為了根目錄訪問每個文件需要輸入該文件的完整的路徑名一樣,必須指定需要調用的函數的完整名稱:在PHP術語中,根目錄將是全局名字空間,路徑名符號將是->。因而,名稱$cart->items和$another_cart->items命名了兩個不同的變數。注意變數名為$cart->items,不是$cart->$items,那是因為在PHP中一個變數名只有一個單獨的美元符號。

<?php
//正確,只有一個$
$cart->items=array("10"=>1);

//不正確,因為$cart->$items變成了$cart->""
$cart->$items=array("10"=>1);

//正確,但可能不是想要的結果:
//$cart->$myvar變成了$cart->items
$myvar='items';
$cart->$myvar=array("10"=>1);
?>
在定義類的時候,無法得知將使什麼名字的對象來訪問:在編寫Cart類時,並不知道之後對象的名稱將會命名為$cart或者$another_cart。因而你不能在類中使用$cart->items。然而為了類定義的內部訪問自身的函數和變數,可以使用偽變數$this來達到這個目的。$this變數可以理解為「我自己的」或者「當前對象」。因而'$this->items[$artnr]+=$num'可以理解為「我自己的物品數組的$artnr計數器加$num」或者「在當前對象的物品數組的$artnr計數器加$num」。

注意:偽變數$this通常未定義,如果其所在的方法是被靜態調用的話。但這不是個嚴格規定:如果一個方法被從另一個對象內靜態調用的話,則$this會被定義。此時$this的值是那個發出調用的對象。用下例演示:

<?php
classA
{
functionfoo()
{
if(isset($this)){
echo'$thisisdefined(';
echoget_class($this);
echo")\n";
}else{
echo"\$thisisnotdefined.\n";
}
}
}

classB
{
functionbar()
{
A::foo();
}
}

$a=newA();
$a->foo();
A::foo();
$b=newB();
$b->bar();
B::bar();
?>
上例將輸出:

$thisisdefined(a)
$thisisnotdefined.
$thisisdefined(b)
$thisisnotdefined.注意:有一些不錯的函數用來處理類和對象。應該關注一下類/對象函數。

❼ php面向對象的概念理解.

我覺得沒必要去深究他的意思。
按我的理解,面向對象編程,主要是將我們實際生活中的對象經過抽象,將它定義成為一個類,通過類的屬性和方法來模擬生活中的這個對象。這樣使得程序更容易結構化、抽象起來更方便。
面向對象技術最初是從面向對象的程序設計開始的,
面向對象編程並不困難
它的出現以60年代simula語言為標志。80年代中後期,面向對象程序設計逐漸成熟,被計算機界理解和接受,人們又開始進一步考慮面向對象的開發問題。這就是九十年代以microsoft
visual系列oop軟體的流行的背景。
傳統的結構化分析與設計開發方法是一個線性過程,因此,傳統的結構化分析與設計方法要求現實系統的業務管理規范,處理數據齊全,用戶能全面完整地其業務需求。
傳統的軟體結構和設計方法難以適應軟體生產自動化的要求,因為它以過程為中心進行功能組合,軟體的擴充和復用能力很差。
對象是對現實世界實體的模擬,因面能更容易地理解需求,即使用戶和分析者之間具有不同的教育背景和工作特點,也可很好地溝通。
區別面向對象的開發和傳統過程的開發的要素有:對象識別和抽象、封裝、多態性和繼承。
對象(object)是一個現實實體的抽象,由現實實體的過程或信息牲來定義。一個對象可被認為是一個把數據(屬性)和程序(方法)封裝在一起的實體,這個程序產生該對象的動作或對它接受到的外界信號的反應。這些對象操作有時稱為方法。對象是個動態的概念,其中的屬性反映了對象當前的狀態。
類(class)用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實例。
由上分析不難看出,盡管oop技術更看中用戶的對象模型,但其目的都是以編程為目的的,而不是以用戶的信息為中心的,總想把用戶的信息納入到某個用戶不感興趣的「程序對象」中。

閱讀全文

與php類和對象區別相關的資料

熱點內容
telnet命令登陸 瀏覽:327
不同文件夾名字怎麼找 瀏覽:241
邵氏風花雪月老電影 瀏覽:997
php多表批量導入 瀏覽:50
免費理論電影大全 瀏覽:874
法國兩男一女電影 瀏覽:292
有一部電影叫什麼湖泊 瀏覽:83
大尺度電影床戲視頻 瀏覽:672
壓縮機線圈燒了可以修嗎 瀏覽:783
cctv5加密收費嗎 瀏覽:211
理財app關閉該怎麼辦 瀏覽:452
伺服器如何配置多個https域名 瀏覽:86
怎樣製作文件夾的中文翻譯 瀏覽:518
泰劇大尺度影片 瀏覽:730
為什麼python適合做演算法 瀏覽:810
新疆政務服務app中如何實名認證 瀏覽:224
重生成小孩 瀏覽:104
二戰中的加密技術 瀏覽:515
美逛app如何建群 瀏覽:819
iphone用什麼app3d掃描 瀏覽:289