亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP ????

?? ?? ?????(??: ?? ?? ?????, ??: OOP)?? ??? ??? ??? ???? ??? ?? ???? ??? ???? ?? ??? ??????. OOP? ????, ???, ?????? ????? ?????? ? ?? ??? ?????.

PHP? ?? 4.0 ?? OOP? ?? ??? ??????. ??? ??????? ?? ?? ?? ?????? ???? ?? ? ???? ???? ? ????. ??? ?? ??? ??????? ?? OOP? ???? ???.

???

???? ??? ??? ???? ?? ??? ?????. ?? ??? ????? ? ?? ?? ??? ???? ? ???? ??? ?? ??? ?? ??? ?? ??? ?????. ?? ?? ????? ???? ???? ???? ???? ???? ??? ??? ??? ?? ?? ??? ??? ????? ? ?? ?? ??? ???? ???.

??

??? ????? ???? ?? ???? ? ???? ?????. ???? ???? ?? ?????. ??? ?? ??? ?? ???? ???? ??? ???? ?????.

?? ???? ??? ???? ??? ???, ????, ??? ?? ?????.

??? ?? ? ?? ??:

??? ??: ??? ?? ??? ??? ? ???, ??? ?? ?? ?? ?????.

??? ??: ?? ???? ???? ? ??? ???? ??, ??, ??, ??.

??? ??: ??? ??? ???? ????, ?????? ??? ??? ????? ??? ????.

???? ??? ??

???? ??? ??? ??? ???? ??? ????. ???? ????? ??? ???? ??? ??????. ??? ??????.

?? ?? Animal? ?? ?? ??? ? ?? ?? ?????, ?? ?? ?? ??? ???, ??? ? ??, ?? ?? ??? ????.

105.png


?? ?? ???

??? - ??? ???? ??? ?????. ???? ???? ???? ??? ???? ?? ??? ?????.

Object - ???? ???????.

?? ?? - ??? ??? ??? ?????. ? ??? ?? ?? ???? ??? ??? ?? ??? ?? ???? ? ????. ???? ??? ??????? ??? ??? ????? ?? ? ????.

?? ?? - ??? ??? ???? ??? ??? ???? ????? ? ??? ? ????.

?? - ??? ?? ???? ?? ???? ??? ??? ???? ???? ???? ???????. ???? ???? ??? ? ?? ???? ???? ? ? ??, ?? ????? ??? ???? ??? ???? ???? ??? ???? ??? ? ????.

?? ??? - ???? ?? ???? ?? ?????. ? ???? ?? ???, ?? ??? ?? ?? ????? ? ? ????.

?? ??? - ?? ???? ???? ???? ?? ??? ?? ?? ????? ???.

???(Polymorphism) - ???? ??? ??, ?? ?? ????? ?? ??? ??? ???? ?? ?? ??? ?? ? ??? ?????. ??? ???? ??? ? ?? ?? ??? ?? ?? ??? ??? ? ?? ??? ?????? ???.

????(Overloading) - ??? ???, ??? ??? ???? ??? ?? ??? ???? ????? ?? ?? ????? ???.

??? - ???? ??? ??? ??(??)? ??(??)? ?? ??? ???? ????? ?? ????. ???? ?? ?? ???? ????? ??????? ??? ??? ??? ???? ??????. ?? ???? ??? ?????? ?? ?? ????? ????? ???.

???(Encapsulation) - ???? ?? ??? ???? ??? ??? ??? ??? ?? ??? ?? ?? ???? ?? ????.

??? - ?? ??? ??? ? ??? ????? ? ?????. ?, ?? ?? ??? ???? ???? ? ?????. ??? ???? ???? ?? new ???? ?? ?????.

??? - ???(???) ????? ??? ??? ????? ???(?? ?? ??? ??? ??? ??? ??) ???? ???? ???? ?????. ???? ?? "??" ??? ???? ? ?????(?? ?? ??? ??? ? new? ???? ??? ??? ???. ??? ??? ???? ?? ????? ??? ?? ????? ???).

?? ????? Car ???? ?? Mercedes, Bmw ? Audi?? ? ?? ??? ??????.

$mercedes = ? ???();
$bmw = ? ???()
$audi = ? ???()

>101.jpg


PHP ??? ??

class ???? ???? ???? ???? ? ?? ??? ??? ?? ??? ?????. {} ??? ?????.

??:

class class_name{

......}


????? ??? ?? ??.

??? ???? var ???? ???? ??? ???? ???? ?? ?????? ?? ??? ??? ??? ? ????.

??:

class class_name{

var $var_name }


????? ?? ?? ?? ?, ???? ???? ?????.

??:

??? ??? ??{
?? ?? ??(arg1,arg2,...)
{
?? ??
}
}

??? ???? ??? ???? ??? ?????, ????? ??? ?? ??? ??? ? ????. ??? ??? ??? ????? new ???? ???? ??? ????????. ?? ??? ??? ?????? ? ????.

??:

object = new class_name();

??? ?????? ? -> ?? ?? ? ???.

??:

object->var_name;
object->function_name;

??? ??? ?????? ?? class ???? ???? ?? ?? ?? $this? ??? ? ????. $this? ?? ??? ?? ??? ???? ? ?????.

<?php
class Person { 
//人的成員屬性 
var $name; //人的名字 
var $age; //人的年齡 
//人的成員 say() 方法 
function say() { 
echo "我的名字叫:".$this->name." <br >"; 
echo "我的年齡是:".$this->age; 
} 
} //類定義結(jié)束 
//實(shí)例化一個(gè)對象 
$p1 = new Person(); 
//給 $p1 對象屬性賦值 
$p1->name = "張三"; 
$p1->age = 20; 
//調(diào)用對象中的 say()方法 
$p1->say(); 
?>

? ??? ???? ??? ?????.

My name is: Zhang San
My age is: 20

Example

<?php 
class Site { 
/* 成員變量 */ 
var $url; 
var $title; 
/* 成員函數(shù) */ 
function setUrl($par)
{ 
$this->url = $par; 
} 
function getUrl()
{ 
echo $this->url . PHP_EOL; 
} 
function setTitle($par)
{ 
$this->title = $par; 
} 
function getTitle()
{ 
echo $this->title . PHP_EOL; 
} 
} 
$php = new Site; 
$taobao = new Site; 
$google = new Site; 
// 調(diào)用成員函數(shù),設(shè)置標(biāo)題和URL 
$php->setTitle( "php中文網(wǎng)" ); 
$taobao->setTitle( "淘寶" ); 
$google->setTitle( "Google 搜索" ); 
$php->setUrl( 'ipnx.cn' ); 
$taobao->setUrl( 'www.taobao.com' ); 
$google->setUrl( 'www.google.com' ); 
// 調(diào)用成員函數(shù),獲取標(biāo)題和URL 
$php->getTitle(); 
$taobao->getTitle(); 
$google->getTitle(); 
$php->getUrl(); 
$taobao->getUrl(); 
$google->getUrl(); 
?>

???? ?? ??

? ??? ???? ?? ??? ??? ????.

php ?? ????
Taobao
Google ??
ipnx.cn
www.taobao.com
www.google.com


PHP ???

???? ??? ?????. ?? ??? ??? ? ??? ????? ? ?????. ?, ?? ?? ??? ???? ???? ? ?????. ??? ???? ???? ?? new ???? ?? ?????. new ???? ???? ???? ????? ???? ???? ???? ???? ?? ??? __construct()?? ???.

????? ??? ???? ??? ? ??? ??? ??? ?? ???? ?????. ?? ??? ??? ???? ?? ? ?? ?????. ? ???? ????? ??? ? ???? ????? ? ?? ??? ??? ??? ???? ? ?????. ? ????? ?? ?? ????.

??:

function __construct(arg1,arg2,...)
{
...
}

?? ???? ??? ???? ?? $url ? $title ??? ???? ? ????.

<?php

function __construct( $ par1, $par2 ) {
$this->url = $par1;
$this->title = $par2
}

?>

?? ? ?? setTitle ? setUrl ???? ??? ??? ????.

Instance

<?php 
$php = new Site('ipnx.cn', 'php中文網(wǎng)'); 
$taobao = new Site('www.taobao.com', '淘寶'); 
$google = new Site('www.google.com', 'Google 搜索'); 
// 調(diào)用成員函數(shù),獲取標(biāo)題和URL 
$php->getTitle(); 
$taobao->getTitle(); 
$google->getTitle(); 
$php->getUrl(); 
$taobao->getUrl(); 
$google->getUrl(); 
?>

???? ???

Destructor

??? ???? ???? ??? ???? ???? ?? ??, ?? ?? ?? ?? ?? ???? ???? ?? ?? ??? ????? ?? ??? ??? ? ????. ???? ????? ??? ? ??? ??? __destruct() ?? ???.

PHP 5??? ?? ?? ?? ??? ??? ??? ??? ??????. ?? ??? ??? ????.

function __destruct()
{
......
}

Instance

<?php 
class MyDestructableClass { 
function __construct() { 
print "構(gòu)造函數(shù)\n"; 
$this->name = "MyDestructableClass"; 
} 
function __destruct() { 
print "銷毀 " . $this->name . "\n"; 
} 
} 
$obj = new MyDestructableClass(); 
?>

? ??? ???? ?? ??? ??? ????.

???
Destroy MyDestructableClass

???? ???? ??? ????

<?php 
class Person { 
var $name; 
var $age; 
//定義一個(gè)構(gòu)造方法初始化賦值 
function __construct($name,$age) { 
$this->name=$name; 
$this->age=$age; 
} 
function say() { 
echo "我的名字叫:".$this->name." <br >"; 
echo "我的年齡是:".$this->age." <br >";; 
} 
function __destruct() 
{ 
echo "再見".$this->name; 
} 
} 
$p1=new Person("張三", 20); 
$p1->say(); 
?>

? ??? ???? ?? ??? ??? ????.

? ??? Zhang San
??? 20
?? Zhang San

???

PHP ??? ??? ??? ?????. ??? ??? ?? ??? ????? ???? ???? ???? ? ???? ???? ?????? ???? ??? ?? ?? ?? ?? ??? ??? ? ?? ??? ?? ???? ??? ????.

? ???? ???? ? ???? ?? ???? ?? ????? ??, ?? ????? ??? ? ???? ?? ????? ???. ??? ????? ? ?? ?? ?? ? ?????.

?? ????? ?? ?? ??? ??? ???? ? ??? ??? ??? ? ????. ??? ? ??? ???? ?? ??? ???? ??? ?? ??? ?????.

??: Java? ?? ??? ?? PHP??? ???? ??? ???, ? ?? ????? ???? ?? ??? ? ????.

extends ???? ???? ??? ?? ??:

class subclass extends parent class {
}

Instance

????? Child_Site ???? Site ???? ???? ?? ??? ?????.

<?php 
// 子類擴(kuò)展站點(diǎn)類別 
class Child_Site extends Site { 
var $category; 
function setCate($par){ 
$this->category = $par; 
} 
function getCate(){ 
echo $this->category . PHP_EOL; 
} 
} 
?>

??? ???

?? ????? ??? ???? ??? ?? ??? ??? ? ?? ?? ?? ??? ?? ??? ?? ??? ? ????. ? ????? ??? ????? ?? ??? ??????? ???.

?????? getUrl ? getTitle ???? ?? ???????.

function getUrl() {
echo $this->php_EOL
return $this; - >url
}

function getTitle(){
echo $this->title . PHP_EOL;
return $this->title; >


??? ?? ? ???

?? PHP?? public, protected ?? private ??? ???? ???? ?????. ???? ???? ?? ??? ??.

??? ??? ???? ???? ???? OOP ??? ??? ??? ??? ?? ???? ??? ? ????.

PHP? ?? ? ?? ??? ???? ?????.

public(public): ???? ??? ??? ??? ??? ?? ?? ??? ? ???? ???(?? ? ??)? ? ????. ?? ?? ? ?? ??? ??). ??? ??? ?? ??? ???? ???? ??? ??? ?????.

protected: protected? ??? ??? ??? ??? ???? ???? ? ??? ???? ?? ????? ??? ??? ????.

????(private): private?? ??? ??? ?? ???? ?? ?? ??? ?? ??? ?????, ?? ???? ?? ?? ? ?????? ?? ??? ???? ???.

??? ??? ?? ???:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?: ?? ???? ?? ???? ???? ????? ?? ?? ???? ???? ?? ??? ??? ???? ?? ? ????. ?? ???? ???? ???? ?? ??? ??.

?? ??? ?? ??? ??? ??, ??, ??? ? ??? ????? ???. var? ???? ??? ?????.

<?php 
/** 
* Define MyClass 
*/ 
class MyClass 
{ 
public $public = 'Public'; 
protected $protected = 'Protected'; 
private $private = 'Private'; 
function printHello()
{ 
echo $this->public; 
echo $this->protected; 
echo $this->private; 
} 
} 
$obj = new MyClass(); 
echo $obj->public; // 這行能被正常執(zhí)行 
echo $obj->protected; // 這行會產(chǎn)生一個(gè)致命錯(cuò)誤 
echo $obj->private; // 這行也會產(chǎn)生一個(gè)致命錯(cuò)誤 
$obj->printHello(); // 輸出 Public、Protected 和 Private 
/** 
* Define MyClass2 
*/ 
class MyClass2 extends MyClass 
{ 
// 可以對 public 和 protected 進(jìn)行重定義,但 private 而不能 
protected $protected = 'Protected2'; 
function printHello() 
{ 
echo $this->public; 
echo $this->protected; 
echo $this->private;
} 
} 
$obj2 = new MyClass2(); 
echo $obj2->public; // 這行能被正常執(zhí)行 
echo $obj2->private; // 未定義 private 
echo $obj2->protected; // 這行會產(chǎn)生一個(gè)致命錯(cuò)誤 
$obj2->printHello(); // 輸出 Public、Protected2 和 Undefined 
?>

???? ?? ??? ??

???? ???? ??, ??? ?? ??? ??? ? ????. ??? ???? ???? ?? ?? ???? ????? public?? ?????.

<?php 
/** 
* Define MyClass 
*/ 
class MyClass 
{ 
// 聲明一個(gè)公有的構(gòu)造函數(shù) 
public function __construct() { } 
// 聲明一個(gè)公有的方法 
public function MyPublic() { } 
// 聲明一個(gè)受保護(hù)的方法 
protected function MyProtected() { } 
// 聲明一個(gè)私有的方法 
private function MyPrivate() { } 
// 此方法為公有 
function Foo() { 
$this->MyPublic(); 
$this->MyProtected(); 
$this->MyPrivate();
} 
} 
$myclass = new MyClass; 
$myclass->MyPublic(); // 這行能被正常執(zhí)行 
$myclass->MyProtected(); // 這行會產(chǎn)生一個(gè)致命錯(cuò)誤 
$myclass->MyPrivate(); // 這行會產(chǎn)生一個(gè)致命錯(cuò)誤 
$myclass->Foo(); // 公有,受保護(hù),私有都可以執(zhí)行 

/** 
* Define MyClass2 
*/ 
class MyClass2 extends MyClass 
{ 
// 此方法為公有 
function Foo2() 
{ 
$this->MyPublic(); 
$this->MyProtected(); 
$this->MyPrivate(); // 這行會產(chǎn)生一個(gè)致命錯(cuò)誤 
} 
} 
$myclass2 = new MyClass2; 
$myclass2->MyPublic(); // 這行能被正常執(zhí)行 
$myclass2->Foo2(); // 公有的和受保護(hù)的都可執(zhí)行,但私有的不行 
class Bar 
{ 
public function test() 
{ 
$this->testPrivate(); 
$this->testPublic(); 
} 
public function testPublic() 
{ 
echo "Bar::testPublic\n"; 
} 
private function testPrivate() 
{ 
echo "Bar::testPrivate\n"; 
} 
} 
class Foo extends Bar 
{ 
public function testPublic() 
{ 
echo "Foo::testPublic\n"; 
} 
private function testPrivate() 
{ 
echo "Foo::testPrivate\n"; 
} 
} 
$myFoo = new foo(); 
$myFoo->test(); // Bar::testPrivate 
// Foo::testPublic 
?>

???

???? ???(??)? ??? ???? ???? ??? ???? ?? ?? ??? ??? ??? ??? ??? ?????? ???? ????. ???. ? ??? ??? ??? ???? ????? ???? ????? ??? ??? ?????? ?? ?? ? ?? ??? ???? ?? ?????.

?? ???? ???? ??? ???? ??????.

<?php 
class Person { 
//將成員屬性定義為 private 
private $name; 
private $age; 
//定義一個(gè)構(gòu)造方法初始化賦值 
function __construct($name, $age) { 
$this->name=$name; 
$this->age=$age; 
} 
function say() { 
echo "我的名字叫:".$this->name." <br >"; 
echo "我的年齡是:".$this->age; 
} 
} 
$p1=new Person("張三", 20); 
$p1->say(); 
?>

Interface

PHP ???? ?? ?????. ?, ???? ????. ?? ?? ???? ?? ???? ??? ??? ?? ??? ?????. ??? ??? PHP? ??? ????? ??? ?????.

?? ???? ?? ???? ?? ????? ??? ???? ?? ?????? ?? ??? ?? ??? ?? ?? ? ?? ?? ???? ??????? ???.

?????? ???? ???? ???? ?? ???? ??? ? ??? ??? ???? ?? ??? ??? ??? ????.

?????? ?? ??? ??? ????? ????? ???? ?? ?????, ? ?? ??? ???? ?? ?? ????. ?????? ??? ?? ???? ????? ???. ?? ?????? ?????.

?????? ????? Implements ???? ?????. ???? ?????? ??? ?? ???? ???? ???. ??? ??? ???? ??? ?????.

<?php 
//定義接口 
interface User{ 
function getDiscount(); 
function getUserType(); 
} 
//VIP用戶 接口實(shí)現(xiàn) 
class VipUser implements User{ 
// VIP 用戶折扣系數(shù) 
private $discount = 0.8; 
function getDiscount() { 
return $this->discount; 
} 
function getUserType() { 
return "VIP用戶"; 
} 
} 
class Goods{ 
var $price = 100; 
var $vc; 
//定義 User 接口類型參數(shù),這時(shí)并不知道是什么用戶 
function run(User $vc){ 
$this->vc = $vc; 
$discount = $this->vc->getDiscount(); 
$usertype = $this->vc->getUserType(); 
echo $usertype."商品價(jià)格:".$this->price*$discount; 
} 
} 
$display = new Goods(); 
$display ->run(new VipUser);//可以是更多其他用戶類型 
?>

??:

VIP ??? ?? ??: 80??

PHP? ???? ??? ? ??? ?? ?????? ??? ?? ????.

??? ?? ???? ?? ??? ??? ?????. ????? 1, ????? 2, ...
{
......
}

?? ???? ?????? ???

?????? ??? ?? ????? ??? ????? ??? ? ????. ?????? ?? ???? ???? ???? ??? ????.

?? ???? ?????? ???? ??(?? ??? ????) ?????? ?? ???? ???? ???. ??? ???? ???? ???.

?????? ??? ??? ??? ???? ? ?????? ???? ?? ?? ???? ??? ??? ????? ?????? ??, ?? ???? ??? ??? ???? ?? ?? ???? ??? ??? ???????. ??? ?? ????. ?? ??? ???(?? ???? ?? ???)? ??? ????.

?? ???? ????? ??? ? ????. ?? ???? ?? ?? ????? ????? ?? ??? ???? ?? ?? ?????? ???? ???.

??

???? ??() ?? ?? const ???? ???? ????? ??? ?????.

??? ??? ??? ?? ?? ??? ??? ? ????. ??? ???? ??? ? $ ??? ??? ??? ????.

??? ?? ??? ???? ?? ??, ??? ??, ?? ??? ?? ?? ?? ??? ? ? ????.

PHP 5.3.0?? ??? ???? ???? ???? ??? ? ????. ??? ? ??? ?? ???(?: self, parent ?? static)? ? ????.

??

const ?? = "value";

????:

<?php 
Class Person{ 
// 定義常量 
const country = "中國"; 
public function myCountry() { 
//內(nèi)部訪問常量 
echo "我是".self::country."人 <br >"; 
} 
} 
// 輸出常量 
echo Person::country." <br >"; 
// 訪問方法 
$p1 = new Person(); 
$p1 -> myCountry(); 
?>

?? ??:

??
?? ???

?? ???

?? ???? ??? ??? ? ?? ??? ???? ??? ?? ?? ???? ???? ????? ???.

???? ??? ???? ?????? ? ????.

???? ??? ???? ?? ???(????)? ???? ?? ?? ??? ??? ?? ????.

?? ???? ??? ? ?? ???? ?? ???? ?? ?? ???? ???? ??, ??? ???? ??? ??? ?? ???? ????? ? ????? ???. ?? ?? ?? ???? protected? ??? ?? ?? ???? ??? ???? protected ?? public?? ????? ?? private?? ??? ? ????. ?? ???? ???? ???? ???? ???. ?, ?? ????? ??? ??? ????? ???. ?? ??, ?? ???? ?? ???? ?? ??? ??? ???? ?? ??? ?? ??? ???? ?? ? ?? ?? ??? ????.

<?php 
abstract class AbstractClass 
{ 
// 強(qiáng)制要求子類定義這些方法 
abstract protected function getValue(); 
abstract protected function prefixValue($prefix); 
// 普通方法(非抽象方法) 
public function printOut() { 
print $this->getValue() . PHP_EOL; 
} 
} 
class ConcreteClass1 extends AbstractClass 
{ 
protected function getValue() { 
return "ConcreteClass1"; 
} 
public function prefixValue($prefix) { 
return "{$prefix}ConcreteClass1"; 
} 
} 
class ConcreteClass2 extends AbstractClass 
{ 
public function getValue() { 
return "ConcreteClass2"; 
} 
public function prefixValue($prefix) { 
return "{$prefix}ConcreteClass2"; 
} 
} 
$class1 = new ConcreteClass1; 
$class1->printOut(); 
echo $class1->prefixValue('FOO_') . PHP_EOL; 
$class2 = new ConcreteClass2; 
$class2->printOut(); 
echo $class2->prefixValue('FOO_') . PHP_EOL; 
?>

? ? ??? ???? ?? ??? ??? ????.

ConcreteClass1
FOO_ConcreteClass1
ConcreteClass2
FOO_ConcreteClass2

?? ???

? ??? ???? ???? ???? ???? ??????? ??? ?? ???? ? ????.

?? ??? ?????? ???? ??? ?? ???? ? ????(??? ?? ???? ???).

?? ?????? ?? ??? ???? ???? ?? ?????? ?? ?? $this? ??? ? ????.

??? -> ???? ?? ?? ??? ???? ? ????.

PHP 5.3.0?? ??? ???? ???? ???? ??? ? ????. ??? ? ??? ?? ??? self, parent ?? static? ? ????.

<?php 
Class Person{ 
// 定義靜態(tài)成員屬性 
public static $country = "中國"; 
// 定義靜態(tài)成員方法 
public static function myCountry() { 
// 內(nèi)部訪問靜態(tài)成員屬性 
echo "我是".self::$country."人<br >"; 
} 
} 
class Student extends Person { 
function study() { 
echo "我是". parent::$country."人<br >"; 
} 
} 
// 輸出成員屬性值 
echo Person::$country."<br >";// 輸出:中國 
$p1 = new Person(); 
//echo $p1->country;// 錯(cuò)誤寫法 
// 訪問靜態(tài)成員方法 
Person::myCountry();// 輸出:我是中國人 
// 靜態(tài)方法也可通過對象訪問: 
$p1->myCountry(); 
// 子類中輸出成員屬性值 
echo Student::$country."<br >";// 輸出:中國 
$t1 = new Student(); 
$t1->study();// 輸出:我是中國人 
?>

?? ??:

China
I am Chinese
I am Chinese
China
I am Chinese

?? ???

PHP 5?? ??? ?? ???? ???????. ?? ???? ???? final? ???? ?? ???? ?? ???? ???? ? ????. ???? final? ???? ??? ? ????.

?? ??? Person
{
......

<?php 
class BaseClass { 
public function test() { 
echo "BaseClass::test() called" . PHP_EOL; 
} 
final public function moreTesting() { 
echo "BaseClass::moreTesting() called" . PHP_EOL; 
} 
} 
class ChildClass extends BaseClass { 
public function moreTesting() { 
echo "ChildClass::moreTesting() called" . PHP_EOL; 
} 
} 
// 報(bào)錯(cuò)信息 Fatal error: Cannot override final method BaseClass::moreTesting() 
?>

?? ??? ??? ??

PHP ?? ??? ????? ?? ??? ???? ???? ???? ????. ?? ???? ???? ????? ?? ???? ????? parent::__construct()? ???? ???.

<?php 
class BaseClass { 
function __construct() { 
print "BaseClass 類中構(gòu)造方法" . PHP_EOL; 
} 
} 
class SubClass extends BaseClass { 
function __construct() { 
parent::__construct(); // 子類構(gòu)造方法不能自動調(diào)用父類的構(gòu)造方法 
print "SubClass 類中構(gòu)造方法" . PHP_EOL; 
} 
} 
class OtherSubClass extends BaseClass { 
// 繼承 BaseClass 的構(gòu)造方法 
} 
// 調(diào)用 BaseClass 構(gòu)造方法 
$obj = new BaseClass(); 
// 調(diào)用 BaseClass、SubClass 構(gòu)造方法 
$obj = new SubClass(); 
// 調(diào)用 BaseClass 構(gòu)造方法 
$obj = new OtherSubClass(); 
?>
? ????? ???? ?? ??? ??? ????.
BaseClass ???? ?? ???

BaseClass ???? ?? ???

SubClass ???? ?? ???

BaseClass ???? ?? ??? BaseClass ???


???? ??
||
<?php class Person { var $name; var $age; //定義一個(gè)構(gòu)造方法初始化賦值 function __construct($name,$age) { $this->name=$name; $this->age=$age; } function say() { echo "我的名字叫:".$this->name." <br >"; echo "我的年齡是:".$this->age." <br >";; } function __destruct() { echo "再見".$this->name; } } $p1=new Person("張三", 20); $p1->say(); ?>