¡¡¡¡Äã¿ÉÄÜÏëÖªµÀ¹¹Ô캯ÊýÊÇÈçºÎ±»¼Ì³ÐµÄ. µ±ËüÃǺÍÆäËü·½·¨Ò»Æ𱻼̳Ðʱ,ËûÃDz»»áÔÚ´´½¨¶ÔÏóʱ±»Ö´ÐÐ.
Èç¹ûÄãÐèÒªÕâ¸ö¹¦ÄÜ,ÄãÐèÒªÓõڶþÕÂÌáµ½µÄ::ÔËËã·û. ËüÔÊÐíÄãÖ¸ÏòÒ»¿éÃüÃû¿Õ¼ä. parentÖ¸Ïò¸¸ÀàÃüÃû¿Õ¼ä,Äã¿ÉÒÔÓÃparent::__constructÀ´µ÷Óø¸ÀàµÄ¹¹Ô캯Êý.
¡¡¡¡Ò»Ð©ÃæÏò¶ÔÏóÓïÑÔÔÚÀàÖ®ºóÃüÃû¹¹Ô캯Êý. PHPµÄÇ°¼¸¸ö°æ±¾Ò²ÊÇÈç´Ë,µ½ÏÖÔÚÕâÖÖ·½·¨ÈÔÈ»ÓÐЧ.Ò²¾ÍÊÇ:Èç¹ûÄã°ÑÒ»¸öÀàÃüÃûΪAnimal²¢ÇÒÔÚÆäÖн¨Á¢Ò»¸öÃüÃûÒ²ÊÇAnimalµÄ·½·¨,ÔòÕâ¸ö·½·¨¾ÍÊǹ¹Ô캯Êý.Èç¹ûÒ»¸öÀàµÄͬʱӵÓÐ__construt¹¹Ô캯ÊýºÍÓëÀàÃûÏàͬµÄº¯Êý,PHP½«°Ñ__construct¿´×÷¹¹Ô캯Êý.ÕâʹµÃÓÃÒÔÇ°µÄPHP°æ±¾ËùдµÄÀàÈÔÈ»¿ÉÒÔʹÓÃ. µ«ÐµĽű¾(PHP5)Ó¦µ±Ê¹ÓÃ__construct.
¡¡¡¡PHPµÄÕâÖÖеÄÉùÃ÷¹¹Ô캯ÊýµÄ·½·¨¿ÉÒÔʹ¹¹Ô캯ÊýÓÐÒ»¸ö¶ÀÒ»ÎÞ¶þµÄÃû³Æ,ÎÞÂÛËüËùÔÚµÄÀàµÄÃû³ÆÊÇʲô. ÕâÑùÄãÔڸıäÀàµÄÃû³Æʱ,¾Í²»ÐèÒª¸Ä±ä¹¹Ô캯ÊýµÄÃû³Æ.
¡¡¡¡Äã¿ÉÄÜÔÚPHPÖиø¹¹Ô캯ÊýÒ»¸öÏñÆäËüÀà·½·¨Ò»ÑùµÄ·ÃÎÊ·½Ê½. ·ÃÎÊ·½Ê½½«»áÓ°Ïì´ÓÒ»¶¨·¶Î§ÄÚʵÀý»¯¶ÔÏóµÄÄÜÁ¦. ÕâÔÊÐíʵÏÖһЩ¹Ì¶¨µÄÉè¼Æģʽ,ÈçSingletonģʽ.
¡¡¡¡Îö¹¹º¯Êý,Ïà·´ÓÚ¹¹Ô캯Êý. PHPµ÷ÓÃËüÃÇÀ´½«Ò»¸ö¶ÔÏó´ÓÄÚ´æÖÐÏú»Ù. ĬÈϵØ,PHP½ö½öÊͷŶÔÏóÊôÐÔËùÕ¼ÓõÄÄÚ´æ²¢Ïú»Ù¶ÔÏóÏà¹ØµÄ×ÊÔ´. Îö¹¹º¯ÊýÔÊÐíÄãÔÚʹÓÃÒ»¸ö¶ÔÏóÖ®ºóÖ´ÐÐÈÎÒâ´úÂëÀ´Çå³ýÄÚ´æ.
¡¡¡¡µ±PHP¾ö¶¨ÄãµÄ½Å±¾²»ÔÙÓë¶ÔÏóÏà¹Øʱ,Îö¹¹º¯Êý½«±»µ÷ÓÃ. ÔÚÒ»¸öº¯ÊýµÄÃüÃû¿Õ¼äÄÚ,Õâ»á·¢ÉúÔÚº¯ÊýreturnµÄʱºò. ¶ÔÓÚÈ«¾Ö±äÁ¿,Õâ·¢ÉúÓڽű¾½áÊøµÄʱºò. Èç¹ûÄãÏëÃ÷È·µØÏú»ÙÒ»¸ö¶ÔÏó,Äã¿ÉÒÔ¸øÖ¸Ïò¸Ã¶ÔÏóµÄ±äÁ¿·ÖÅäÈκÎÆäËüÖµ. ͨ³£½«±äÁ¿¸³ÖµÇÚΪNULL»òÕßµ÷ÓÃunset .
¡¡¡¡ÏÂÃæµÄÀý×ÓÖÐ,¼ÆËã´ÓÀàÖÐʵÀý»¯µÄ¶ÔÏóµÄ¸öÊý. CounterÀà´Ó¹¹Ô캯Êý¿ªÊ¼ÔöÖµ,ÔÚÎö¹¹º¯Êý¼õÖµ.
¡¡¡¡Ò»µ©Ä㶨ÒåÁËÒ»¸öÀà,Äã¿ÉÒÔÓÃnewÀ´½¨Á¢Ò»¸öÕâ¸öÀàµÄʵÀý. ÀàµÄ¶¨ÒåÊÇÉè¼Æͼ,ʵÀýÔòÊÇ·ÅÔÚ×°ÅäÏßÉϵÄÔª¼þ. NewÐèÒªÀàµÄÃû³Æ,²¢·µ»Ø¸ÃÀàµÄÒ»¸öʵÀý. Èç¹û¹¹Ô캯ÊýÐèÒª²ÎÊý,ÄãÓ¦µ±ÔÚnewºóÊäÈë²ÎÊý.
<?php function __construct() function __destruct() function getCount() //½¨Á¢µÚÒ»¸öʵÀý //Êä³ö1 //½¨Á¢µÚ¶þ¸öʵÀý //Êä³ö2 //Ïú»ÙʵÀý //Êä³ö1
class Counter
{
private static $count = 0;
{
self::$count++;
}
{
self::$count--;
}
{
return self::$count;
}
}
$c = new Counter();
print($c->getCount() . "<br>n");
$c2 = new Counter();
print($c->getCount() . "<br>n");
$c2 = NULL;
print($c->getCount() . "<br>n");
?>
¡¡¡¡µ±Äãн¨ÁËÒ»¸öʵÀý,ÄÚ´æ»á±»×¼±¸À´´æ´¢ËùÓÐÊôÐÔ. ÿ¸öʵÀýÓÐ×Ô¼º¶ÀÓеÄÒ»×éÊôÐÔ. µ«·½·¨ÊÇÓɸÃÀàµÄËùÓÐʵÀý¹²ÏíµÄ¡£