¿ìËÙÒµÎñͨµÀ

ÉîÈëPHPʹÓü¼ÇÉÖ®±äÁ¿

×÷Õß ØýÃû¼¼Êõ À´Ô´ NET±à³Ì ä¯ÀÀ ·¢²¼Ê±¼ä 2012-05-23
µ«Ò²ºÜÄÑά»¤~Ö¸Õë¿ÉÒÔ˵ÊÇCÓïÑÔ³ÌÐòÔ±ÐÄÍ·µÄÍ´(µ±È»Ò²ÊǸ£~^_^)¡£»¹ÓÐÒ»ÖÖ¸ü¸ß¼¶¸üÓÐЧµÄ·½·¨ÊDzÉÓÃÒýÓüÆÊý(Reference counting)¡£

¡¡¡¡ÔÚPHPÖУ¬Ò²¿ÉÒÔ²ÉÓÃÒýÓÃÀ´½â¾öÕâÑùµÄÎÊÌ⣬µ«Äã¼û¹ý²ÉÓÃÔÚPHPÖдóÁ¿Ê¹ÓÃÒýÓõÄÂð?ÏÔÈ»ºÜÉÙ¡£

¡¡¡¡ÔÚPHPÄÚºËÖУ¬ZvalµÄʵÏÖÕýÊDzÉÓÃÁËÒýÓüÆÊýµÄ¸ÅÄ˵ÆðÒýÓüÆÊý¾Í²»µÃ²»Ì¸µ½copy-on-write »úÖÆ¡£ÕâÑùÇ°Ãæ̸µ½µÄrefcountºÍis_ref¾ÍÓÐ×÷ÓÃÁË¡£

¡¡¡¡refcount£ºÒýÓôÎÊý¡£ÔÚzval³õʼ´´½¨µÄʱºò¾ÍΪ1¡£Ã¿Ôö¼ÓÒ»¸öÒýÓã¬Ôòrefcount ++¡£

¡¡¡¡is_ref£ºÓÃÓÚ±íʾһ¸özvalÊÇ·ñÊÇÒýÓÃ״̬¡£zval³õʼ»¯µÄÇé¿öÏ»áÊÇ0£¬±íʾ²»ÊÇÒýÓá£

¡¡¡¡ÔÚZend/Zend.hÄÚ²¿ÓÐһЩ¹ØÓÚZVALµÄºê¶¨Ò壬ÀïÃæ±È½ÏÇåÎúµÄ½âÎöÁËÒýÓüÆÊýµÄһЩ¹æÔò£¬ÆäÖÐÖصã¹Ø×¢ÒÔϼ¸¸öºê¶¨Òå

¡¡¡¡#define INIT_PZVAL(z) \

¡¡¡¡(z)->refcount = 1; \

¡¡¡¡(z)->is_ref = 0;

¡¡¡¡#define SEPARATE_ZVAL_IF_NOT_REF(ppzv) \//·ÇÒýÓÃϵıäÁ¿·ÖÀë

¡¡¡¡if (!PZVAL_IS_REF(*ppzv)) { \

¡¡¡¡SEPARATE_ZVAL(ppzv); \

¡¡¡¡}

¡¡¡¡#define SEPARATE_ZVAL_TO_MAKE_IS_REF(ppzv) \//·ÇÒýÓÃϵıäÁ¿·ÖÀ룬²¢ÇÒÉèÖÃÒýÓÃ

¡¡¡¡if (!PZVAL_IS_REF(*ppzv)) { \

¡¡¡¡SEPARATE_ZVAL(ppzv); \

¡¡¡¡(*(ppzv))->is_ref = 1; \

¡¡¡¡}

¡¡¡¡#define SEPARATE_ARG_IF_REF(varptr) \ //ÒýÓÃϵıäÁ¿·ÖÀë

¡¡¡¡if (PZVAL_IS_REF(varptr)) { \

¡¡¡¡zval *original_var = varptr; \

¡¡¡¡ALLOC_ZVAL(varptr); \

¡¡¡¡varptr->value = original_var->value; \

¡¡¡¡varptr->type = original_var->type; \

¡¡¡¡varptr->is_ref = 0; \

¡¡¡¡varptr->refcount = 1; \

¡¡¡¡zval_copy_ctor(varptr); \

¡¡¡¡} else { \

¡¡¡¡varptr->refcount++; \

¡¡¡¡}

¡¡¡¡ÕâÀïÃæ̸µ½Á½¸öÖØÒªµÄ¸ÅÄ

¡¡¡¡1¡¢·ÇÒýÓÃϵıäÁ¿·ÖÀë¡£

¡¡¡¡·ÇÒýÓÃϵıäÁ¿·ÖÀ룬ÊÇÖ¸ÔÚÒ»¶Ñ·ÇÒýÓñäÁ¿ÖвåÈëÒýÓõÄÇé¿öÏ£¬ÔÚPHPÄÚ²¿½øÐеÄÒ»ÖÖÄÚ´æ²Ù×÷¡£ÒÔÏÂÃæµÄÁÐ×ÓÀ´¿´£º

¡¡¡¡$a = 1;

¡¡¡¡$b = $a;

¡¡¡¡$c = &$b;

¡¡¡¡ÔÚÇ°Á½¾äÖ´ÐÐÖ®ºó£¬ÄÚ´æ½á¹¹ÈçÏÂͼ

¡¡¡¡

\

 

¡¡¡¡ÔÚµÚÈý¾ä $c = &$b;Óï¾äÖÐÔò»áÖ´ÐГ·ÇÒýÓÃϵıäÁ¿·ÖÀë¡£”£¬¾ßÌå²½ÖèÊÇ£º

¡¡¡¡½«b·ÖÀë³öÀ´£¬Í¬Ê±°Ña¶ÔÓ¦µÄzvalµÄrefcount-1¡£

¡¡¡¡copy ³öÒ»¸öеÄzval£¬²¢°ÑzvalµÄis_refÉèÖóÉ1.

¡¡¡¡°ÑCÖ¸ÏòÕâ¸öеÄzval£¬Í¬Ê±refcount ++

¡¡¡¡×îÖÕЧ¹ûÈçÏÂͼ£º

¡¡¡¡

\

 

¡¡¡¡2¡¢ÒýÓÃϵıäÁ¿·ÖÀë¡£

¡¡¡¡ÒýÓÃϵıäÁ¿·ÖÀ룬ÊÇÖ¸ÔÚÒ»¶ÑÒýÓñäÁ¿ÖнøÐÐÒ»¸ö·ÇÒýÓø³Öµ²Ù×÷£¬Õâ¸öʱºò»áÖ±½ÓÖ´ÐÐcopyÄÚ´æµÄ²Ù×÷¡£

¡¡¡¡ÒÔÏÂÃæµÄÀý×ÓÀ´Ëµ

¡¡¡¡$a = 1;

¡¡¡¡$b = &$a;

¡¡¡¡$c = $b;

¡¡¡¡ÔÚÖ´ÐÐÍêÇ°Á½Ðкó£¬PHPÖÐÄÚ´æ½á¹¹ÈçÏ£º

¡¡¡¡

\

 

¡¡¡¡ÔÚµÚÈý¾ä£¬Ôò»áÖ´ÐГÒýÓÃϵıäÁ¿·ÖÀë”Ò²¾ÍÊÇÕæÕýµÄcopy£¬×îÖÕÄÚ´æ½á¹¹ÈçÏÂͼ

¡¡¡¡

\

 

¡¡¡¡¾Ý´Ë£¬»ù±¾É϶ÔPHP±äÁ¿ÄÚ²¿µÄһЩԭÀí±È½ÏÇå³þÁË£¬µ«»¹ÓÐһЩÐèҪעÒâµãµÄ£º

¡¡¡¡1¡¢PHP±äÁ¿µÄÒýÓüÆÊýÌØÐÔ£¬¶ÔÓÚÊý×éͬÑùÒ²´æÔÚ¡£µ«×¢Ò⣬¶ÔÓÚkeyÔò²»ÉúЧ¡£(¾ßÌåÔÚºóÃæÕ½ڻá·ÖÎöµ½¡£)

¡¡¡¡2¡¢PHP±äÁ¿ÖеĶÔÏó±È½ÏÌØÊ⣬ÔÚPHP5Ö®ºó£¬Ä¬È϶¼ÊDzÉÓÃÒýÓø³ÖµµÄ·½Ê½¡£¾ßÌåʵÏÖ¿ÉÒԲο¼Zend_objects.*ϵÁдúÂë¡£

¡¡¡¡3¡¢¶ÔÓÚ·ÖÎöPHPÄÚ²¿±äÁ¿£¬ÍƼö²ÉÓÃxdebug_debug_zval£¬¶ø²»Òª²ÉÓÃÄÚÖõÄdebug_zval_dump¡£ÒòΪPHPÄÚÖõÄdebug_zval_dumpº¯ÊýÒ»·½ÃæÎÞ·¨´¦Àíis_ref£¬¶øÇÒ²ÉÓÃÁËÒýÓõķ½Ê½À´´¦Àí£¬´Ó¶øµ¼Ö¿´µ½½á¹û»áÓÐÎó½â¡£

¡¡¡¡Ê¹Óü¼ÇɽáÂÛ

¡¡¡¡¾Ý´Ë¿ÉÒԵóö·ÖÎö³ö²»ÉÙ½áÂÛ£º

¡¡¡¡1¡¢ÔÚPHP¿ª·¢Öв»ÍƼö²ÉÓÃÒý

ÁèÖڿƼ¼×¨ÒµÌṩ·þÎñÆ÷×âÓᢷþÎñÆ÷Íйܡ¢ÆóÒµÓʾ֡¢ÐéÄâÖ÷»úµÈ·þÎñ£¬¹«Ë¾ÍøÕ¾£ºhttp://www.lingzhong.cn ΪÁ˸ø¹ã´ó¿Í»§Á˽â¸ü¶àµÄ¼¼ÊõÐÅÏ¢£¬±¾¼¼ÊõÎÄÕÂÊÕ¼¯À´Ô´ÓÚÍøÂç,ÁèÖڿƼ¼×ðÖØÎÄÕÂ×÷ÕߵİæȨ£¬Èç¹ûÓÐÉæ¼°ÄãµÄ°æȨÓбØҪɾ³ýÄãµÄÎÄÕ£¬ÇëºÍÎÒÃÇÁªÏµ¡£ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúҪתÔر¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!

ÉÏÒ»Ò³123HTTP/1.1 401 Access Denied §¹û°ÂÔËÎ廷Ч¹ûͼ" target="_blank">PhotoshopÈëÃÅ:»æÖÆÁ¢ÌåЧ¹û°ÂÔËÎ廷Ч¹ûͼ
  • LinuxϵÄVsftpdÅäÖÃƪ
  • DIVºÍtableÒ³Ãæ²¼¾ÖµÄÇø±ðºÍÁªÏµ
  • ÈçºÎʵÏÖ¶þάÏòÁ¿ - ±à³ÌÈëÃÅÍø
  • ÍøÂçÓªÏú¹«Ë¾ÔÚÔËÓªÖеIJßÂÔ
  • iBATIS 3ÄÚµÄÐÂÌØÐÔ£º½«iBATISÓÃ×÷Ó¦ÓóÌÐòÄÚµÄÒ»Öֳ־ÿò¼Ü - ±à³ÌÈëÃÅÍø
  • Photoshop»æÖƸ߹âË®¾§ÖʸÐË®¾§Æ»¹û
  • Copyright ©1999-2011 ÏÃÃÅÁèÖڿƼ¼ÓÐÏÞ¹«Ë¾ ÏÃÃÅÓÅͨ»¥Áª¿Æ¼¼¿ª·¢ÓÐÏÞ¹«Ë¾ All rights reserved

    µØÖ·(ADD)£ºÏÃÃÅÈí¼þÔ°¶þÆÚÍûº£Â·63ºÅ701E£¨¶«ÄÏÈÚͨÅÔ£© Óʱà(ZIP)£º361008

    µç»°£º0592-5908028 ´«Õ棺0592-5908039 ×ÉѯÐÅÏ䣺web@lingzhong.cn ×ÉѯOICQ£º173723134

    ¡¶ÖлªÈËÃñ¹²ºÍ¹úÔöÖµµçÐÅÒµÎñ¾­ÓªÐí¿ÉÖ¤¡·ÃöB2-20100024  ICP±¸°¸:ÃöICP±¸05037997ºÅ