????
?? ?? ?????(OOP, ?? ?? ?????)? ??? ????? ???????. OOP? ?? ?? ? ??? ??? ????? ?????? ??? ? ?? ?? ?? ?? ??? ????? ????. ????? ?????? ? ?? ??: ????, ???, ???. ???? ??? ???? ?? ? ??? ??? ????, ???? ????, ?? ??? ??? ?? ? ????. ????? ????? ?? ???? ?? ??? ??????. ??, ????? ??? ??? ???? ???? ??? ?????. ??, ?? ?? ??? ???? ???? ? ??? ?? ??? ???? ??? ? ????. ?? ?????? ? ????, ?? ???? ??, ??? ??? ??? ??? ? ?? ??? ?????. ?? ???? PHP? ??? ?? ?? ??? ???? ???? ?? ?????. PHP? ????? ????? OOP ?? ?? ?? ?????? ??? ? ????. ??? ??? ????? ?? ?? OOP? ???? PHP?? ???? ???? ??????? ??? ???? ???? ? ?? ????. ? ??? ???? ??? ???? ?????. ???? ?? ???? ???? ?? ?? ?????? ???? ?? ??? ?? ?? ??? ????? ???? ??? ?????. ? ?? ??? ?? ????. ??? ?? ??? ?? ??? ??????.
????? ???? ?? ??????? ?????? ???????.
???? ??
"???? ??"? ???? ?? ????? ???????. "???? ??"? "??? ??" ????? ??????? ???. ?? ??? "?? ??" ??(?: ??, ???)? ???? ??? ?? ??? ??? ??? ??? ???? ????.
? ??? ???? ? ??? ??? ??? ?? ??? ???? ??? ??? ???? ???? ????.
???? ??? ??? ??
???
????
?????
????
???? ???? ???? ???? ?? ?? ?????. ??? ??? ?? ??? ???? ??? ??? ???? ?????.
?? ??? ??? ???? ????? ?? ??? ???? ????. ??? ???? ??? ??? ???? ?? ??? ?? ??? ?? ???? ???? ??? ???? ????. .
?? ?? ?? ?
??????? ??? ??? ?? ???? ??? ?? ??? ? ? ????. ?? ?? ??? ??? ???? ???. ??? ??? ???? ?? ????? ?? ??? ???? ??? ????? ????? ?? ??? ???? ??? ???? ?? ??? ??? ??? ??? ??? ???? ????. ???? ?????? ??? ??? ???? ??? ? ?? ??? ???? ?????.
???? ??? ??
??: ??? ???? ???? ?? ?? ??? ??? ???? ??, ??, ??? ??? ? ????. ???? ??? ??? ??? ??? ?? ???? ??? ?????. ???? ??? ??? ???? ? ???? ??? ????. ??? ?? ??? ??? ?????. ??? ???? ??? ??? ????? ???? ??? ??? ??? ?? ??????.
???: ??? ??(??? ??)? ??(??)? ?? ??? ???? ?? ????? ???. ??? ??? ???? ?? ?????, ???? ???? ?? ????, ???? ????? ????, ???? ???? ??? ????? ? ?? ????. ????? ?? ??? ???? ??? ??? ??? ??? ???? ???? ??? ?????. ????? ?? ??? ??? ???? ???? ???? ?? ??? ???? ??? ????.
??? ???? ??:
???? ??? ??? ?? ??? ??? ????. ???? ???? ??? ????, ??? ??????. ??? ?????, ??? ??? ??? ??(??)? ??? ??? ?? ?? ?????.
php ???? ?? ??? ?? ???
????? ??? ???
<?php class phpClass { var $var1; var $var2 = "constant string"; function myfunc ($arg1, $arg2) { [..] } [..] } ?>rrree
??: ???? ?? ?? ?? ???? ??? ???. ?? ???? ???? ??? ??? ?? var(???)? ??? ? ????. ?? ???? var? ???? ???.
??: ?? ??? ???, ??, ??? ?? ?? ??? ??? ???? ? ????. ??? ?? ???? ??? ????? ?? ?? ?? ??? ? ? ????.
?????? ??
???? ????? ??? ??? ????. :
$Object name = ? ??? ??([????]); // ??? ?????: ???? ??? ??? ??
· $Object ??: ??? ?????? ?? ??? ?? ????, ???? ???? ???? ? ?????.
· new: ? ??? ???? ???? ??????.
· ??? ??: ???? ??? ?????.
· ????: ??? ???? ??? ???? ???? ???? ?? ??????. ???? ??? ???? ??? PHP? ???? ???? ?? ?? ???? ?????.
new.php?? ???? ????? ?? ??? ??? ??????? ????? ???? ? ? ????.
<?php class boy{ var $name ="jw"; var $age = "21"; var $sex = "男"; var $height = "182CM"; var $eye = "big"; //函數(shù)(成員方法) function zuofan(){ return "做飯<br>"; } function jiawu(){ return "家務(wù)<br>"; } }; ?>
-> ??? ??? ?? ?? ??? ???? ?????.
?? ?? ?? "this"???.
??? ??? ?, ? ??? ?? ? ???? ?????? ? ??? ???? ???.
<?php class boy{ //變量(成員屬性) var $name ="jw"; var $age = "21"; var $sex = "男"; var $height = "182CM"; var $eye = "big"; //函數(shù)(成員方法) function zuofan(){ return "做飯<br>"; } function jiawu(){ return "家務(wù)<br>"; } } $boy1 = new boy(); $boy1->name = "張三"; $boy2 = new boy(); $boy2 ->name = "李四"; echo $boy1 -> sex."<br>"; echo $boy2 -> height."<br>"; ?>
??? ???
???? ??? ??????. ?? ??? ??? ? ??? ????? ? ?????. ?, ?? ?? ??? ???? ???? ? ?????. ??? ???? ???? ?? new ???? ?? ?????.
1. ?? ?? ? ???? ?? ???? ??????(??)
2. ??? ??? ???? ??? ??? ??? ? ????
3. ??? ??? ???? ???? ? ?????.
<?php class boy{ //變量(成員屬性) var $name ="jw"; var $age = "21"; var $sex = "男"; //函數(shù)(成員方法) public function zuofan(){ echo "{$this->name} 做飯<br>"; $this->jiawu(); } function jiawu(){ echo "家務(wù)<br>"; } } $boy1 = new boy(); $boy2 = new boy; $boy2 ->name = "李四"; $boy1->name = "張三"; $boy1->zuofan(); $boy2->zuofan(); ?>
?? ??
???, ??? ?? ??? ????(?: ??? ??? ??? ???) ???? ???? ???? ?????.
PHP 5??? ?? ?? ?? ??? ??? ??? ??? ??????. ?? ??? ??? ????.
void __destruct ( void )
??
PHP? ???? ???? ?? ?? ???? ?????. PHP? ?? ??? ???? ????. ??? ??? ????.
<?php
class Child? Parent? ?????. >??? ?? PHP ?? ???? ??? ??? ?? public, protected ?? private ???? ???? ?????.
· ??: ?? ??? ???? ????? ???? ? ????.
public.php protected.php private.php? ?? ???? ??? ? ????
??? ?????? ???? (override)/coverage - ?? ??: ?? ???? ?? ?? ???? ???? ???? ??? ?? ?? ??? ?? ???? ? ???? ???? ??? ??? ?? ??? ????? ???? ???. ?? ?? ???? ? ???? ?????? ? ? ????. ?? ?? ? - ?? ???(??)? ??? ?? ???(???? ?)? ?? ? ??? ?? ?? ??? ??? ??? ??? ?? ???? ? ???? ??? ? ??? ?? ???(???)? ??? ??? ? ????. ?)? ?????. ??? ??? ????:<?php class boy{ //變量(成員屬性) var $name; var $age; var $sex; function __construct($name,$age,$sex="男"){ $this->name="$name"; $this->age="$age"; $this->sex="$sex"; } //函數(shù)(成員方法) public function zuofan(){ echo "{$this->name} 做飯<br>"; $this->jiawu(); } function jiawu(){ echo "家務(wù)<br>"; } } $boy1 = new boy("名字",28); $boy2 = new boy("名",26,"男"); $boy1->zuofan(); $boy2->zuofan(); ?>
????? ?????? ???? ??? ? ?? ?????. ?? ?? ???
? ??? ???? ?? ????? ??? ?? ????? ?? ???? ?? ?????? ???? ???. ?? ??, ?? ???? ??? ?????.
????? Shop
{
public function buy($gid)
public function Sell($gid); );
}
shop ????? ???? ???? buy, sale ? view? ? ?? ???? ?????. ?? ?? ? ???? ???? ?? ?? ???? ? ? ?? ???? ???? ???. ?? ???? ??? ???? ????. ?? ????? ???? ????? ??? ???? ????? ???? ????. ? ??? ??? ? ?? ? ???? ??? ? ??. ??? ?? ??????. <?php
class Animal{
public $name;
protected $price;
function cry(){
echo "不知道動(dòng)物怎么叫";
}
}
class Dog extends Animal{
function cry(){
echo "汪汪...";
}
}
class Pig extends Animal{
function cry(){
echo "哼哼..."
}
}
?>
Constant
????? ?? ???? ?? ?? ??? ?? ??? ? ????. ??. ??? ???? ??? ? $ ??? ??? ??? ????. ??? ?? ??? ???? ?? ??, ??? ??, ?? ??? ?? ?? ?? ??? ? ? ????.<?php class BaseShop implements Shop { public function buy($gid) { echo('你購(gòu)買了ID為 :'.$gid.'的商品'); } public function sell($gid) echo('你賣了ID為 :'.$gid.'的商品'); } public function view($gid) { echo('你查看了ID為 :'.$gid.'的商品'); } } ?>php??::? ??????? ?? ??? ? ?? ??? ?? ???
?? ??,
<?php class MyClass { const constant = '常量值'; function showConstant() { echo self::constant . PHP_EOL; } } echo MyClass::constant . PHP_EOL; $classname = "MyClass"; echo $classname::constant . PHP_EOL; // 自 5.3.0 起 $class = new MyClass(); $class->showConstant(); echo $class::constant . PHP_EOL; // 自 PHP 5.3.0 起 ?>? Test::? ?? ?? ??? ? ????. $test ??? ?? ?? ?? $test? ????????.
?? ??? ???? ?????. Test::test() ?? ???? ?? ?????.
?? class
PHP ??????? ?? ??? ?? PHP ?? ??? ?????. ????? ??? ???? ??? ??? ?????? ??? ?? ?? ???, ???? ??? ?? ??? ????? ???? ?? ???? ???? ?????? ?????? ???? ?? ???? ????. ????? ??? ???? ??? ??? ?? ? ???? ?????, ?? ?? ??? ??? ?? ?? ?????. PHP??? ???????. ???? ???? ? ???? ???? ??? ??? ? ????. ? ???? ?? ???? ???? ?? ?? ??? ???? ?????? ???. PHP ?? ??? ?? ??: ?? ??? ClassName{}PHP ?? ??? ?? ?? ??: 1. ?? ???? ???? ?????? ? ???? ?? ???? ??? ???? ??? 2. ??? ?? ????? ??? ? ??? ? ??? ????? 3. ????? ?? ??? ?? ???? ?? ???? ???? ????. PHP ?? ??? ??? ?? ??: 1. ?? ???? ?? ??? ??? ??? ??? ?? ???? ?????. ??>2. ?? ????? ?? ???? ???? ??? ? ?? ?? ???? ???? ?? ???? ???? ??? ??? ???.
3. ?? ???? ??? ????? ?? ?? ?? ?? ?? ?? ????
4. ?? ???? ????? ?? ?? ?? ??? ???? ??? ?? ????? ??? ???.
PHP ?? ??? ?? ?:
abstract public function_name(); //???? ??? ?? ?????
PHP ?? ??? ??:
1. ???? ?? ??? ?? ???? ???? ??? ?? ???? ???? ???.
2. ?? ???, ??? ?? ??? ??? ? ????
3. ?? ???? ?? ???? ???? ?? ???? ????? ?? ???? ????? ?? ??? ??? ??? ???
4. ?? ??? ???? ?? ???, ?? ?? ???? ???? ??? ?? ???? ?? ??????
??? ?? ???? ??? ?????. ????? ??? ?????. ? ????? ?? ????? ??? ? ????.
abstract.php ??? ? ? ????
?? ???
??? ??? ??? ??? final? ???? ? ???? ?????. ? ???? ???? ????.
final---??? ? ??? ??? ?????.
?? ???---??? ? ????.
?? ??---???? ? ????.
?? ???? ??? ? ????.
???? ?? ????? ??? ?? ?? ??? ?? Final? ???? ???? ???? ??? ? ? ????.
?? ???
PHP ?? ??? ? ?? ??? ??? ?? ?????. ?? ??? ?? ?? ???? ???? ? ?? ??????. ???? ??? ? ??? ???? ?? ?? ???? ??? ??? ?? ??? ?????.
PHP_EOL
? ??
?? ??? ??? ???
parent::__construct()? ?????.
PHP? ?? ???? ????? ?? ???? ???? ???? ???? ????. ?? ???? ???? ????? ?? ???? ?????