Hatena::¥Ö¥í¥°(Diary)

For Want Of A Better Word

2012-02-08

¥×¥í¥°¥é¥ß¥ó¥°PHP¡¡Âè3¾Ï(´Ø¿ô)¥Ý¥¤¥ó¥È

  • ´Ø¿ô̾¤ÎºÇ½é¤Îʸ»ú¤Ï¡¢¡Ö±Ñ»ú or _ ¡×¡¡2ÈÖÌܰʹߤϿôÃͤâÍøÍѲÄǽ¡£
  • ´Ø¿ô̾¤ÎÁ°¤Ë¡¢&¤òÉÕ¤±¤ë¤È¡¢Ìá¤êÃͤ¬»²¾ÈÅϤ·¤È¤Ê¤ë¡£°ú¿ô¤ò»²¾È¤ÇÅϤ·¤¿¤¦¤¨¤ÇÍøÍѤ¹¤ë¤Î¤¬Ä̾
  • ¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤ÏÁ°½Ò¤·¤¿¤Î¤Ç¾Êά
  • ¥Ñ¥é¥á¡¼¥¿¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤ¬ÀßÄê¤Ç¤­¤ë¡£Ã¢¤·¡¢½çÈÖ¤ËÀ©Ì󤬤¢¤ê¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤò»ý¤¿¤Ê¤¤°ú¿ô¤ò¤¹¤Ù¤ÆÀë¸À¤·¤Æ¤«¤é¡¢¥Ç¥Õ¥©¥ë¥ÈÃͤò»ý¤Ä°ú¿ô¤òÀë¸À¤¹¤ëɬÍפ¬¤¢¤ë¡£
  • ¢£²ÄÊѥѥé¥á¡¼¥¿
    • °ú¿ô¤Î¿ô¤¬²ÄÊѤξì¹ç¤¬¤¢¤ë¡£¤³¤Î¾ì¹ç¤Ï¡¢°ú¿ôÀë¸À¤Ï¹Ô¤ï¤º¡¢´Ø¿ôÆâ¤Ç¡¢func_get_args(),func_num_args,func_get_arg(Í×ÁÇ)¤Ç°ú¿ô¤ò¼èÆÀ¤·¤ÆÍøÍѤ¹¤ë¡£¤¿¤À¤·¡¢¤³¤ì¤é¡Öfunc...·Ï¡×¤Î´Ø¿ô¤ÎÌá¤êÃͤÏÊÌ´Ø¿ô¤Î°ú¿ô¤ËľÀÜÍøÍѤ¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤¤¤Ã¤¿¤óÊÑ¿ô¤Ë³ÊǼ¤·¤¿¤¦¤¨¤ÇÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¡£
  • ¥Ñ¥é¥á¡¼¥¿¤Î°ú¤­ÅϤ·¤ò¾Êά¤¹¤ë¤³¤È¤â½ÐÍè¤ë¡£¤¿¤À¤·¡¢warnig¤ÏȯÀ¸¤¹¤ë¡£
  • ¢£²ÄÊÑ´Ø¿ô¡Ê´Ø¿ô̾¤òÊÑ¿ô¤Ç»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¡Ë

  $var = "function1"
  
  $var(); //´Ø¿ô function1¤¬¼Â¹Ô¤µ¤ì¤ë¡£¡¡³ºÅö¤Î´Ø¿ô̾¤¬Ìµ¤¤¾ì¹ç¤Ï¥¨¥é¡¼¡£
$lambda = create_function($a, $b, 'return(strlen($a)-strlen($b));') // ½èÍý¤Ë¡¨¤¬É¬Íס£
$array = array('1','12','123');

usort($array, $lambda); // $array¤ò$lambda¤ÇÄêµÁ¤·¤¿ÌµÌ¾´Ø¿ô¤Î·ë²Ì¤Ë±þ¤¸¤ÆÊ¤ÓÂØ¤¨¤ë¡£


¥ê¥Æ¥é¥ë

¡Ö¥ê¥Æ¥é¥ë¡×¤Ï¡Ö¥×¥í¥°¥é¥à¤ËľÀܽñ¤¤¤Æ¤¢¤ë¥Ç¡¼¥¿¡×

¥¨¥¤¥ê¥¢¥¹

¡Ö¥¨¥¤¥ê¥¢¥¹¡×¤Ï¡ÖÊÌ̾¡×, ¤Ä¤Þ¤ê¡Ö¤¢¤ëÊÑ¿ô¤ÎÃæ¿È¤òÊ̤νñ¤­Êý¤ÇÁàºî¤Ç¤­¤ë¤è¤¦¤Ë¤·¤¿¤â¤Î (or ¤¹¤ë¤³¤È)¡×

¥×¥í¥°¥é¥ß¥ó¥°PHP¡¡Âè2¾Ï¥Ý¥¤¥ó¥È

»ú¶ç¹½Â¤

  • ´ðËܤÏÂçʸ»ú¾®Ê¸»ú¤Î¶èÊ̤Ϥʤ·¡£ÊÑ¿ô̾¤Î¤ß¡¢¶èÊ̤¢¤ê¡£
  • ¼±Ê̻ҤȤ·¤ÆÍøÍѤǤ­¤ë¾ò·ï¡£ÀèÆ¬Ê¸»ú¤Ï¡Ö"¥¢¥ë¥Õ¥¡¥Ù¥Ã¥ÈÂçʸ»ú¾®Ê¸»ú"¤È"_"(°ì±þ¥¢¥¹¥­¡¼¤Î7f¡Áff¤Þ¤Ç¤âOK)¡×¡¢ÀèÆ¬°Ê³°¤Ï¾åµ­+¿ô»ú¤¬²Äǽ¡£(-¤Ï¥À¥á¤Ê¤ó¤À¤Í¡£)

¥Ç¡¼¥¿·¿¤Ë¤Ä¤¤¤Æ

  • is_·¿Ì¾¡Ê¡Ë´Ø¿ô¤Ç·¿¥Á¥§¥Ã¥¯¤¬¤Ç¤­¤ë¡£
  • ʸ»úÎ󤬿ôÃͤǹ½À®¤µ¤ì¤ë¾ì¹ç¡¢¿ôÃͤȤη׻»¡¢¿ôÃÍʸ»úÎóÆ±»Î¤Î·×»»¤Ë¤ª¤¤¤Æ¡¢¿ôÃͤ˥­¥ã¥¹¥È¤µ¤ì¤ë¡£
  • ¿ôÃͤÎÈæ³Ó¤Ï¿ôÃͽ硣ʸ»úÎó¤ÎÈæ³Ó¤Ï¼­½ñ½ç¡£¿ôÃÍʸ»úÎó¤Ï¿ôÃͤ˥­¥ã¥¹¥È¤µ¤ì¤ë¤Î¤Ç¡¢¿ôÃͽç¤ÇÈæ³Ó¤µ¤ì¤ë¤Îat¤ÇÃí°Õ¡£¼­½ñ½çÈæ³Ó¤·¤¿¤¤¾ì¹ç¤Ï¡¢strcmp()¤¬É¬Íס£¤Þ¤¿¥½¡¼¥È¤Î¼ïÎà¤Ë¼«Á³½ç¡Êʸ»úÎóÃæ¤Î¿ôÃͤò¿ôÃͤò¤·¤Æ°·¤¦¡£¡Ë¤â¤¢¤ë¡£Èæ³ÓÍÑ´Ø¿ô¤Ë¤Ï[nat]¤È¤¤¤¦¸ÀÍÕ¤¬Æþ¤ë¡£
  • ¢£¿ôÃÍ(3¼ïÎà 10¿Ê 8¿Ê 16¿Ê)
    • ÀèÆ¬¤¬0¤Ç¤Ï¤Ê¤¤¢ª10¿Ê¤È²ò¼á
    • ÀèÆ¬¤¬0¤Ç¤½¤Î¤¢¤È¤Ë¡¢0-7¤Î¿ôÃͤ¬Â³¤¯¢ª8¿Ê¤È²ò¼á
    • ÀèÆ¬¤¬0x ¤½¤Î¤¢¤È¤Ë¡¢0-9 orA-F¤¬Â³¤¯¢ª16¿Ê¤È²ò¼á

¢¨À°¿ôÃͤÎÈϰϤòͤ¨¤ëÃͤä¿ôÃͰʳ°¤ÎÃͤòÀ°¿ô·¿¤È¤·¤ÆÂåÆþ¤·¤è¤¦¤È¤¹¤ë¤È¡¢¼«Æ°Åª¤Ë¡ÖÉâÆ°¾®¿ôÅÀ¿ô¡×¤Ø¤ÎÊÑ´¹¤¬¹Ô¤ï¤ì¤ë¡£

  • ¢£ÉâÆ°¾®¿ôÅÀ¿ô
    • ÉâÆ°¾®¿ôÅÀ¿ô¤ÎÃͤϡ¢¤¢¤¯¤Þ¤Ç¶á»÷Ãͤ˲᤮¤Ê¤¤¡£¤Ê¤Î¤ÇÆó¤Ä¤ÎÉâÆ°¾®¿ôÅÀ¿ô¤òÈæ³Ó¤¹¤ë¾ì¹ç¡¢´°Á´°ìÃפϴüÂԤǤ­¤Ê¤¤¡£ÆÃÄê¤Î·å¿ô¤Þ¤Ç¤òÈæ³ÓÂоݤȤ¹¤ë¤Ù¤­¤Ç¤¢¤ë¡£
  • ¢£ÏÀÍýÃÍ
    • °Ê²¼¤ÎÃͤÏÁ´¤Æ¡¢false¤È°·¤ï¤ì¤ë¡£µÕ¤Ë¤¤¤¦¤È¡¢°Ê²¼°Ê³°¤ÏÁ´¤Ætrue¡£¤È¤¤¤¦¤³¤È¤ÏÇÛÎ󤬶õ¤«¤É¤¦¤«¤È¤«¡¢Ã±½ã¤Ë¡Öif($foo)¡×¤Ê¤É¤Ç¥Á¥§¥Ã¥¯¤Ç¤­¤ë¡£
  • ¢£ ¥ê¥½¡¼¥¹
    • ³°Éô¤ÎÀ¤³¦¡ÊDB¤ä¥Õ¥¡¥¤¥ë¤Ê¤É¡Ë¤òÍøÍѤ¹¤ë¾ì¹ç¡¢¤½¤ÎÂоݤÈÀܳ¤ò¤¹¤ëɬÍפ¬¤¢¤ë¡£¤½¤Î³ÎΩ¤·¤¿Àܳ¤òɽ¤¹¼±Ê̻Ҥò¡Ö¥ê¥½¡¼¥¹¡×¤¢¤ë¤¤¤Ï¡Ö¥Ï¥ó¥É¥é¡×¤È¸Æ¤Ö¡£
    • ¼ÂÂΤÏñ½ã¤Ë¿ôÃÍ¡£¥ê¥½¡¼¥¹¤Ø¤Î»²¾È¤¬¤Ê¤¯¤Ê¤Ã¤¿Ãʳ¬¤Ç¡¢¥ê¥½¡¼¥¹¤òºîÀ®¤·¤¿³ÈÄ¥¥â¥¸¥å¡¼¥ë¤¬¥á¥â¥ê¤Î²òÊü¤Ê¤É¤ò¹Ô¤¦¡£¢¨¤Ç¤­¤ì¤Ð¡¢ÌÀ¼¨Åª¤Ëµ­½Ò¤·¤¿Êý¤¬¹¥¤Þ¤·¤¤¡£
  • ¢£ Null
    • NULL¤Çɽ¸½¤¹¤ë¡£¤³¤ì¤âÂçʸ»ú¡¢¾®Ê¸»ú¤ò¶èÊ̤·¤Ê¤¤¡£NULL¤Ç¤ânull¤Ç¤ânULL¤Ç¤âOK¡£
    • °ÕÌ£¹ç¤¤¤Ï¡Ö̤ÄêµÁ¡×¤Î¾õÂÖ¡£ÊÑ¿ô¤òÀë¸À¤·¤¿¤À¤±¤È¤«¡£

ÊÑ¿ô

  • $¤Ç»Ï¤Þ¤ê¡¢Âçʸ»ú¡¢¾®Ê¸»ú¤¬¶èÊ̤µ¤ì¤ë¡£ÀèÆ¬¤Ï¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È + ¡Ö_¡×¡£
  • ·¿Àë¸À¤Ï¤¤¤é¤Ê¤¤¡£°ÅÌۤΥ­¥ã¥¹¥È¡£(·¿¤Î¥¸¥ã¥°¥ê¥ó¥°)¤¬¹Ô¤ï¤ì¤ë¡£
  • ¢£²ÄÊÑÊÑ¿ô
    • ÊÑ¿ô̾¤òưŪ¤Ë(ÊÑ¿ô¤Ç)ÀßÄꤹ¤ë¡£
$foo = "test";
$$foo = "ab";
echo $$foo //ab
  • ¢£ÊÑ¿ô¤Ø¤Î»²¾È
    • »²¾ÈÅϤ·¡¢¥á¥â¥ê¥¢¥É¥ì¥¹ÅϤ·¤Ã¤ÆÅÛ¡£=¥¨¥¤¥ê¥¢¥¹¤ÎºîÀ®¡£ = &¤Ã¤Æ¤ä¤ë¡£
    • ´Ø¿ô¤Î»²¾ÈÌᤷ¤â¤¢¤ë¡£¡¡function &ref_ref(){½èÍý return $var};
  • ¢£ÊÑ¿ô¤Î¥¹¥³¡¼¥×
    • (£±)¥í¡¼¥«¥ë¥¹¥³¡¼¥×
      • ¤½¤ÎÊÑ¿ô¤¬Àë¸À¤µ¤ì¤¿¡¢´Ø¿ôÆâÉô¤Ç¤·¤«»²¾È¤Ç¤­¤Ê¤¤¡£
    • (£²)¥°¥í¡¼¥Ð¥ë¥¹¥³¡¼¥×
      • ´Ø¿ô¤ä¥¯¥é¥¹¤Î³°¤ÇÀë¸À¤µ¤ì¡¢¤É¤³¤«¤é¤Ç¤â»²¾È½ÐÍè¤ë¡£
var $foo = test;

function test(){
  global $foo; //$GLOBALS[foo]¤Ç¤âOK¡£ 
  echo $foo;
}


    • (£³)¥¹¥¿¥Æ¥£¥Ã¥¯ÊÑ¿ô(¥¹¥¿¥Æ¥£¥Ã¥¯¥¹¥³¡¼¥×¡¢¥ì¥­¥·¥«¥ë¥¹¥³¡¼¥×)

¥¬¡¼¥Ù¥¸¥³¥ì¥¯¥·¥ç¥ó

    • PHP¤Î¥á¥â¥ê´ÉÍý¤Ï¡¢»²¾È¥«¥¦¥ó¥¿¤Ë¤è¤ë¡¢copy-on-writeÊý¼°¡£(Ãͤ¬ÊѤï¤Ã¤¿»þ¤Ë½é¤á¤Æ¡¢¥á¥â¥ê(¥·¥ó¥Ü¥ë)¥Æ¡¼¥Ö¥ë¾å¤ËÃͤò³ÎÊݤ¹¤ë¡£)¡£¼«Æ°¤Ç´ÉÍý¤·¤Æ¤¯¤ì¤ë¥¬¡¼¥Ù¥¸¥³¥ì¥¯¥·¥ç¥ó¤Ç¤¹¡£
    • ¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¡ÊÊÑ¿ô̾¤È¥á¥â¥ê¥¢¥É¥ì¥¹¤ÎÂоÝɽ¡Ë¤Ë¤Ï¡¢»²¾È¥«¥¦¥ó¥¿¤¬Â¸ºß¤·¡¢¤³¤ì¤¬£°¤Ë¤Ê¤ë¤È¡¢¤½¤Î¥á¥â¥êÎΰè¤ÏÇË´þ¤µ¤ì¤ë¡£¥¹¥³¡¼¥×¤«¤é³°¤ì¤ë¤È-1

  • ¢£°ÅÌۤΥ­¥ã¥¹¥È
    • ·×»»¤Ê¤É¡¢Æó¤Ä¤Î¥ª¥Ú¥é¥ó¥É¤Î·¿¤¬°ìÃפ¹¤ë¤³¤È¤òÁ°Äó¤È¤¹¤ë½èÍý¤¬¹Ô¤ï¤ì¤ë¾ì¹ç¡¢·¿¤¬¼«Æ°Åª¤ËÊÑ´¹¤µ¤ì¤ë¡£¤³¤ì¤¬°ÅÌۤΥ­¥ã¥¹¥È = ·¿¤Î¥¸¥ã¥°¥ê¥ó¥°
    • À°¿ô + ÉâÆ° ¢ªÉâÆ°
    • À°¿ô + ʸ»úÎó ¢ª¿ôÃÍ
    • ÉâÆ° + ʸ»úÎó ¢ªÉâÆ°
    • ¡ÊÃí°Õ¡Ëʸ»úÎ󤬿ôÃͤ˲ò¼á¤µ¤ì¤ë¾ì¹ç¡¢Ê¸»úÎó¤ÎÀèÆ¬¤Ë¿ôÃͤ¬¤¢¤ë¤Ê¤é¤Ð¡¢¤½¤ì¤¬Â³¤¯¸Â¤ê¤½¤ÎÃͤò¿ôÃͤȤ¹¤ë¡£¿ôÃͤǻϤޤé¤Ê¤¤¾ì¹ç¤Ï¡¢¤¹¤Ù¤Æ0°·¤¤¡£
  • ¢£¥¤¥ó¥¯¥ê¥á¥ó¥È¤È¥Ç¥¯¥ê¥á¥ó¥È±é»»»Ò
    • ++¡¡--¤òÃÖ¤¯°ÌÃÖ¤ÇÌá¤êÃͤ¬ÊѤï¤ë¡£Á°¤ËÃÖ¤¯¤È¡¢¥¤¥ó¥¯¥ê¥á¥ó¥È¸å¤ÎÃͤ¬µ¢¤ë¡£¸å¤í¤ËÃÖ¤¯¤È¡¢¥¤¥ó¥¯¥ê¥á¥ó¥ÈÁ°¤ÎÃͤ¬µ¢¤ë¡£
    • ʸ»úÎó¤ËÂФ·¤Æ¡¢¥¤¥ó¥¯¥ê¥á¥ó¥È¡¢¥Ç¥¯¥ê¥á¥ó¥È¤ò¹Ô¤¦¤È¡¢ËöÈø¤ËÂФ·¤Æ¡¢¼¡¤Î¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÊÑ´¹¤¹¤ë½èÍý¤¬¹Ô¤ï¤ì¤ë¡£

  • ¢£Èæ³Ó±é»»»Ò
    • ¥ª¥Ú¥é¥ó¥É¤Î·¿¤ÎÁȤ߹ç¤ï¤»¤Ë¤è¤ê¡¢Èæ³ÓÊýË¡¤¬ÊѤï¤ë¤Î¤ÇÃí°Õ¡ª
    • ¿ôÃÍ¡ÊÀ°¿ô¡¢ÉâÆ°¡Ë¤¬´Þ¤Þ¤ì¤ë¾ì¹ç¤Ï¡¢¾ï¤Ë¡Ö¿ôÃͤˤè¤ëÈæ³Ó¡×
    • ¿ôÃÍ·Á¼°¤Îʸ»úÎó¤É¤¦¤·¤Î¾ì¹ç¤Ï¡¢¡Ö¿ôÃͤˤè¤ëÈæ³Ó¡×
    • ʸ»úÎó¤É¤¦¤·¡¢¤«¤Ä¡¢¿ôÃÍ·Á¼°¤Ç¤Ê¤¤Ê¸»úÎó¤ò´Þ¤à¾ì¹ç¤Ï¡Ö¼­½ñ½ç¡×
    • ¢¨¿ôÃÍ·Á¼°¤É¤¦¤·¤Îʸ»úÎó¤ò¼­½ñ½çÈæ³Ó¤¹¤ë¾ì¹ç¤Ï¡Östrcmp()¡×¤ÇÈæ³Ó¤¹¤ë¡£
    • Ʊ°ì¤«¡¢Æ±°ì¤Ç¤Ê¤¤¤«¤ÎȽÄê¤Ï·¿¤ò´Þ¤á¤¿Èæ³Ó¤Þ¤Ç¤Ç¤­¤ë¡£
    • Âç¤Ê¤ê¾®¤Ê¤ê¤Ï¡¢Á°½Ò¤Îµ¬Â§¤Ë½¾¤¦¡£·¿¤Î°ìÃפϹÍθ¤·¤Ê¤¤¡£
  • ¢£ÏÀÍý±é»»»Ò
    • ûÍí½èÍý¤¬ºÎÍѤµ¤ì¤Æ¤¤¤ë¡£¡ÊºÇ½é¤Î¥ª¥Ú¥é¥ó¥É¤ÎȽÄê¤Ç¡¢Á´ÂΤÎȽÄ꤬³ÎÄꤹ¤ë¾ì¹ç¤Ï¡¢°Ê¹ß¤ÎȽÄê¤Ï¼Â»Ü¤µ¤ì¤Ê¤¤¡£¡Ë(&& || ¤É¤Ã¤Á¤â¤³¤ì¤òºÎÍѤ·¤Æ¤¤¤ë¡£)¤Ê¤Î¤Ç°Ê²¼¤Î¤è¤¦¤Êʸ¤¬ÍøÍѤǤ­¤ë¡£
  $result = fopen($filename) or exit();  //fopen¤¬false¤Î»þ¤Î¤ß¡¢exit()¤¬¼Â¹Ô¤µ¤ì¤ë¡£
  • ¢£ÂåÆþ±é»»»Ò

¥Õ¥í¡¼À©¸æÊ¸

  • ´ðËܤÏOK
  • Á´¤Æ¤ÎÀ©¸æÊ¸¤Ë¡¢¡ÖÀ©¸æÊ¸¤ÎºÇ¸å¤Ë:¥³¥í¥ó¡¡¤òÉÕ¤±¤Æ¡¢¡¡¥Ö¥í¥Ã¥¯¤ÎºÇ¸å¤Ëendif¤Ê¤É¡¡¤òÉÕ¤±¤ë¤³¤È¤Ç¡¢Ãæ³ç¸Ì¤ò»È¤ï¤Ê¤¤¥¿¥¤¥×¤Îµ­Ë¡¤¬¤¢¤ë¡£¡×
  • »°¹à±é»»»Ò¤Ë¤Ä¤¤¤Æ¤Ï¡¢¾Êά¡£
  • ¢£switch
    • break¤Ç½èÍý¤òÃæÃǤ¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢break¤·¤Ê¤±¤ì¤Ð¡¢Ê£¿ô¤Îswitch½èÍý¤ò¼Â¹Ô¤¹¤ë¤³¤È¤â²Äǽ¤È¤¤¤¦¤³¤È¡£
  • ¢£while
    • break¥­¡¼¥ï¡¼¥É¤Î¸å¤Ë¿ôÃͤòꤍ¤ë¤³¤È¤Ç¡¢²¿Ãʳ¬¤Î¥ë¡¼¥×¤òÈ´¤±¤ë¤«»ØÄê¤Ç¤­¤ë¡£¼«¿È¤òÈ´¤±¤ë¤Î¤¬1¡£
    • continue¤Ï¡¢°Ê¹ß¤Î½èÍý¤ò¼Â»Ü¤»¤º¤Ë¡¢¥µ¥¤¥É¥ë¡¼¥×¤ÎȽÄê¤ËÌá¤ë¡£
    • do while¤â¤¢¤ê¡£
  • ¢£for
    • ¹½Ê¸ for (ÊÑ¿ôÀë¸À;¡¢¾ò·ï; ¥¤¥ó¥¯¥ê¥á¥ó¥È;){};¡ÖÊÑ¿ôÀë¸À¤È¥¤¥ó¥¯¥ê¥á¥ó¥È¤Ï,¶èÀÚ¤ê¤ÇÊ£¿ô»ØÄê¤Ç¤­¤ë¡£¡×
  • ¢£foreach
    • foreach($array as $data)
    • foreach($arra as $key => $value)
  • ¢£declare
    • ticks¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¼Â¹Ô¤µ¤ì¤¿¥³¥Þ¥ó¥É¿ôËè¤Ë½èÍý¤ò¼Â¹Ô¤µ¤ì¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¡Ê»È¤¤¤É¤³¤í¤Ê¤¤¤Í¡¼¡Ë

³°Éô¥³¡¼¥É¤ÎÆÉ¤ß¹þ¤ß

  • include¡§¤½¤Î¾ì¤ÇÆÉ¤ß¹þ¤ó¤ÀÀè¤ÎPHP¤òŸ³«¤¹¤ë¡£ ¥Õ¥¡¥¤¥ëÆÉ¤ß¹þ¤ß¤Î¼ºÇԤ䟳«Àè¤Î¥Õ¥¡¥¤¥ëÆâ¤Ë¥¨¥é¡¼¤¬¤¢¤Ã¤Æ¤â̵»ë¤·¤Æ¡¢°Ê¹ß¤Î½èÍý¤ò·Ñ³¤¹¤ë¡£
  • require¡§include¤È´ðËÜÆ±¤¸¡£¤¿¤À¤·¡¢»²¾ÈÀè¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢Ã×̿Ū¥¨¥é¡¼¤Ç½ªÎ»¤¹¤ë¡£
  • _once:Ʊ°ì½èÍý¤Ê¤¤¤Ç¡¢°ìÅÙ¤·¤«ÆÉ¤ß¹þ¤Þ¤Ê¤¤¡£
  • ¥¹¥³¡¼¥×¤Ï¡¢ÆÉ¤ß¹þ¤ó¤À½ê¤ÇÀë¸À¤·¤¿¾ì¹ç¤ÈƱ¤¸¡£
  • php.ini¤Çallow_url_fopen¤òµö²Ä¤·¤Æ¤ª¤¯¤È¡¢³°Éô¥µ¡¼¥Ð¤ÎPHP¤âÆÉ¤ß¹þ¤á¤ë¡£

WEB¥Ú¡¼¥¸¤Ø¤ÎPHP¤ÎËä¤á¹þ¤ß·¿

  • XMLÉ÷¢ª
  • SGML ¢ª
  • ASPÉ÷¢ª<% %> (¥Ç¥Õ¥©¥ë¥È¤Ï̵¸ú)
  • <script>¢ª <script language="php"> //php¤Î½èÍý </script>
  • ¥³¥ó¥Æ¥ó¥Ä¤ÎľÀܽÐÎÏ
    • <%= $test %> ¢ª(ºÇ½é¤ÎÊý¤Ë=¤òÄɲ䷤Ƥ¤¤ë¡£)¤³¤ì¤Ç¡¢¼°¤Î·ë²Ì¤òecho ¤Ê¤·¤ÇľÀܽÐÎϤǤ­¤ë¡£





memcache

Memcache¥â¥¸¥å¡¼¥ë¤Ï¡¢memcached ¤ËÂФ¹¤ë¼ê³¤­·¿¤ª¤è¤Ó ¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤Î¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤òÄ󶡤·¤Þ¤¹¡£¤³¤ì¤ÏÈó¾ï¤Ë¸úΨŪ¤Ê ¥­¥ã¥Ã¥·¥å¥Ç¡¼¥â¥ó¤Ç¡¢Æ°Åª¤Ê web ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¤Î ¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆÉ¤ß¹þ¤ßÎ̤ò¸º¤é¤¹¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£

Memcache ¥â¥¸¥å¡¼¥ë¤Ï¡¢¥»¥Ã¥·¥ç¥ó ¥Ï¥ó¥É¥é (memcache) ¤âÄ󶡤·¤Þ¤¹¡£

memcached¢­

memcached ¤Ï¡¢¥Ç¡¼¥¿¤È¥ª¥Ö¥¸¥§¥¯¥È¤ò¥á¥â¥êÆâ¤Ë¥­¥ã¥Ã¥·¥å¤¹¤ë¤³¤È¤Ç¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éÆÉ¤ß½Ð¤·¤ò¹Ô¤¦²ó¿ô¤ò¸º¾¯¤µ¤»¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÍѤ¤¤¿ Web ¥µ¥¤¥È¤ò¹â®²½¤¹¤ë¤¿¤á¤ËÎɤ¯ÍѤ¤¤é¤ì¤ë¡£

memcached ¤Ïǧ¾Ú¤ä¥»¥­¥å¥ê¥Æ¥£¤Îµ¡Ç½¤ò»ý¤Ã¤Æ¤ª¤é¤º¡¢¤¹¤Ê¤ï¤ÁŬÀÚ¤ËÀßÄꤵ¤ì¤¿¥Õ¥¡¥¤¥¢¡¼¥¦¥©¡¼¥ë¤òÍѤ¤¤ë¥µ¡¼¥Ð¾å¤Ç¤Î¤ß»ÈÍѤǤ­¤ë¡£´ûÄê¤Ç¤Ï¡¢memcached ¤Ï¥Ý¡¼¥È 11211 ÈÖ¤ò»ÈÍѤ¹¤ë¡£¤Þ¤¿¡¢libevent ¤ò»ÈÍѤ·¤Æ¤¤¤ë¡£
memcached ¤Î API ¤Ï¡¢Ê£¿ô¤Î¥Þ¥·¥ó¾å¤Ëʬ»¶¤µ¤ì¤¿µðÂç¤Ê¥Ï¥Ã¥·¥å¥Æ¡¼¥Ö¥ë¤òÄ󶡤¹¤ë¡£¥Æ¡¼¥Ö¥ë¤¬¤¤¤Ã¤Ñ¤¤¤Î¾ì¹ç¡¢°Ê¹ß¤Î¥Ç¡¼¥¿¤Î¿·µ¬ÁÞÆþ¤Ë¤è¤ê¸Å¤¤¥Ç¡¼¥¿¤ÏLeast Recently Used ½ç½ø¤Çºï½ü¤µ¤ì¤ë¡£memcached ¤òÍѤ¤¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢Çظå¤Ë¤¢¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ê¤É¤ÎÄ㮤ʵ­²±ÁõÃ֤ؤΥ¢¥¯¥»¥¹¤ÎÁ°¤Ë memcached ¤Î¥ê¥¯¥¨¥¹¥È¤òÁÞÆþ¤¹¤ë¡£
memcached ¤Î¥·¥¹¥Æ¥à¤Ï¡¢YouTube [2] ¤äLiveJournal¡¢Wikipedia¡¢SourceForge¡¢Facebook¡¢Digg¡¢Fotolog¤Ê¤É¤ÎÂ絬ÌϤÊͭ̾¥µ¥¤¥È¤Ç»ÈÍѤµ¤ì¤Æ¤¤¤ë[3]¡£

Memcache¤¬PHP¤Î¥¯¥é¥¤¥¢¥ó¥È¥â¥¸¥å¡¼¥ë¡¢Memcached¤¬¥Ç¡¼¥â¥ó¤È¹Í¤¨¤ì¤ÐÎɤµ¤½¤¦¡£

PHP¤Ë¥Ð¥ó¥É¥ë¤µ¤ì¤Æ¤¤¤Ê¤¤¤Î¤Ç¡¢PECL¤«¤é¤Î¥À¥¦¥ó¥í¡¼¥É¤¬É¬Íס£

¤¢¤È¤Ï¡¢php.ini ¤ÇưºîÀßÄê¤ò¹Ô¤¦¡£

DBÀܳ¤ÈƱ¤¸¤è¤¦¤Ê´¶¤¸¤ÇÍøÍѤǤ­¤ë¡£

SQl¤òȯ¹Ô¤¹¤ë¤ï¤±¤Ç¤Ï¤Ê¤¯¡¢Key-Value·¿¡£

//Àܳ
$memcache = new Memcache;
$memcache->connect('memcache_host', 11211); //ǧ¾Ú¤Ê¤·

Memcache::add (Memcache::set)
Memcache::delete 
Memcache::flush

Xdebug(¥Ç¥Ð¥Ã¥¬¡¼)

xdebug ¤Ï PHP ¤Î¥³¥¢³«È¯¼Ô¤Ç¤¢¤ë Derick Rethans »á¤¬³«È¯¤·¤Æ¤¤¤ë¡¢PHP ¤Î¥Ç¥Ð¥Ã¥°ÍÑ¥¨¥¯¥¹¥Æ¥ó¥·¥ç¥ó¤Ç¤¹¡£ ŵ·¿Åª¤Ê¥Ç¥Ð¥Ã¥°ºî¶È¤òÊä½õ¤¹¤ë°Ê³°¤Ë¤â¡¢ÍÍ¡¹¤Ê³ÈÄ¥µ¡Ç½¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

¥â¥¸¥å¡¼¥ë¤ÎÄɲä¬É¬Íס£

var_dump()¤Îɽ¼¨·ë²Ì¤¬³ÈÄ¥¤µ¤ì¤¿¤ê¡£

¤¢¤È¤Ï¡¢¥×¥í¥Õ¥¡¥¤¥ë¾ðÊó¤ò¥Õ¥¡¥¤¥ë¤ËÅǤ­½Ð¤·¤Æ¤¯¤ì¤ë¤È¤¤¤¦¤Î¤¬´ðËÜ¡£

Eclipse¤äÀìÍѤΥ½¥Õ¥È¤Ç¤ß¤ë¤È¡¢¾ðÊó¤ò¸«¤ä¤¹¤¯É½¼¨¤·¤Æ¤¯¤ì¤ë¡£

APD(¥Ç¥Ð¥Ã¥¬¡¼)

http://www.php.net/manual/ja/intro.apd.php

APD ¤Ï¿Ê²½¤·¤¿ PHP ¥Ç¥Ð¥Ã¥¬¤Ç¤¹¡£PHP ¥³¡¼¥É¤Î¥×¥í¥Õ¥¡¥¤¥ê¥ó¥°¤ä¥Ç¥Ð¥Ã¥°¤Îµ¡Ç½¤òÄ󶡤¹¤ë¤³¤È¡¢ ¤Þ¤¿´°Á´¤Ê¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤ò½ÐÎϤ¹¤ëµ¡Ç½¤òÄ󶡤¹¤ë¤³¤È¤òÌÜŪ¤È¤·¤ÆºîÀ®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ APD ¤ÏÂÐÏ÷Á¼°¤Î¥Ç¥Ð¥Ã¥°¤â¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¤¬¡¢ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥Ç¡¼¥¿¤ò¥È¥ì¡¼¥¹¥Õ¥¡¥¤¥ë¤Ë½ñ¤­½Ð¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤Þ¤¿¡¢¤µ¤Þ¤¶¤Þ¤Ê¥ì¥Ù¥ë¤Î¾ðÊó (´Ø¿ô¤Î¥³¡¼¥ë¡¦ÅϤµ¤ì¤¿°ú¿ô¡¦»þ´Ö¤Ê¤É¤ò´Þ¤à) ¤ò¥¤¥Ù¥ó¥ÈȯÀ¸»þ¤Ëµ­Ï¿¤¹¤ë¤³¤È¤¬¤Ç¤­¡¢ ¤½¤ì¤ò¸Ä¡¹¤Î¥¹¥¯¥ê¥×¥Èñ°Ì¤ÇÍ­¸ú¤Ë¤·¤¿¤ê̵¸ú¤Ë¤·¤¿¤ê¤Ç¤­¤Þ¤¹¡£

¢¨APD ¤Ï Zend ³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ç¡¢PHP ÆâÉô´Ø¿ô¤Î¥³¡¼¥ëÊýË¡¤Ë¼ê¤ò²Ã¤¨¤Þ¤¹¡£ ¤½¤Î¤¿¤á¡¢Â¾¤Î Zend ³ÈÄ¥¥â¥¸¥å¡¼¥ë (¤¿¤È¤¨¤Ð Zend Optimizer ¤Ê¤É) ¤È¤ÎÁêÀ­¤ËÃí°Õ¤¬É¬ÍפǤ¹¡£

¢¨¥×¥í¥Õ¥¡¥¤¥ë·ë²Ì¤ò¥Õ¥¡¥¤¥ë¤ËÅǤ­½Ð¤·¤Æ¤¯¤ì¤ë¤ß¤¿¤¤¡£¼Â¹Ô¤¹¤ë¤«¤·¤Ê¤¤¤«¤Ï¡¢PHP.ini¤ÎÀßÄê¤ÇÊѹ¹½ÐÍè¤ë¤Î¤Ç¡¢³«È¯»þ¤À¤±ON¤Ë¤¹¤ë¤È¤¤¤¦¤³¤È¤â²Äǽ¤«¤â¡£

ECLIPSE¤Ç¤ÎÍøÍѤâ²Äǽ¡£

mysqlnd

PHP5¤ª¤è¤Ó6ÍѤÎMySQL¤Î¥Í¥¤¥Æ¥£¥Ö¥É¥é¥¤¥Ð¤Ç¤¹¡£

mysqli¤ÇÍøÍѤ·¤Æ¤¤¤ë "libmysql¤ò»È¤Ã¤Æ¤ÎÀܳ" ¤òÃÖ¤­´¹¤¨¤ë¥â¥Î¤È¤Ê¤ê¤Þ¤¹¡£¤Ê¤Î¤Ç¡¢Extension¤Ç¤Ï¤Ê¤¯¡¢PHP¥¹¥¯¥ê¥×¥È¤ÎIF¦¤ÏÊѤï¤é¤ºext/mysqli¤È¤Ê¤ê¤Þ¤¹¡£libmysql¤ò»È¤ï¤º¡¢PHPÀìÍѤ˽ñ¤«¤ì¤Æ¤ª¤ê¡¢¤½¤ì¤æ¤¨¤Ë¹â®¤Ë¤Ê¤Ã¤¿¤ê¤¤¤í¤¤¤í¤Ê²¸·Ã¤¬¤¢¤ë¤è¤¦¤Ç¤¹¡£


¢£PDO¤ä¥Í¥¤¥Æ¥£¥Ö¥â¥¸¥å¡¼¥ë¤È¤Ï¥ì¥¤¥ä¤¬°ã¤¦¡£PDO¤«¤é¸Æ¤Ó½Ð¤¹Àè¤Î¤³¤È¡£

¥¯¥é¥¤¥¢¥ó¥È¡¡¢ªPDO¡Ê¥Í¥¤¥Æ¥£¥Ö¥â¥¸¥å¡¼¥ë¡Ë ¢ªMYSQL¥¯¥é¥¤¥¢¥ó¥È(mysqlnd)¡¡¢ªMYSQL
                                            ¢ªPOSTGRES¥¯¥é¥¤¥¢¥ó¥È        ¢ªPOSTGRES

              

PDO ¥Í¥¤¥Æ¥£¥Ö¥â¥¸¥å¡¼¥ë¡¡°ã¤¤

http://thinkit.co.jp/free/marugoto/1/4/3/

PDO¤ÏÃê¾Ý²½API¤Ê¤Î¤Ç¡¢¤µ¤Þ¤¶¤Þ¤ÊDB¤ËÂФ·¤Æ¶¦Ä̤Υ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÇÍøÍѤǤ­¤ë¡£

¤½¤Îʬ¡¢¥Í¥¤¥Æ¥£¥Ö¤Ê¤â¤Î¤è¤ê®ÅÙ¤ÏÃÙ¤¯¤Ê¤ë¡£

PDO¤Ç¤Ï¡¢Ã±½ã¤ÊSQL¤Ç¤¢¤ì¤Ð¡¢¥Í¥¤¥Æ¥£¥Ö¥É¥é¥¤¥Ð¤È¤Û¤ÜƱÅù¤ÎÀ­Ç½¤¬½Ð¤Æ¤¤¤ë¤è¤¦¤Ç¤¹¡£¼Â¹ÔÀ­Ç½¤¬µá¤á¤é¤ì¤ë¥±¡¼¥¹¤Ç¤â¡¢¶¦ÄÌAPI¤¬Ä󶡤µ¤ì¤Æ¤¤¤ëPDO¤òÍøÍѤ¹¤ì¤Ð¡¢°Û¤Ê¤ëDBMS¤ËÂбþ¤Ç¤­¤ë¥¹¥¯¥ê¥×¥È¤ÎºîÀ®¤¬Íưפ˹Ԥ¨¤ë¤Ç¤·¤ç¤¦¡£¤Þ¤¿¡¢¥×¥ì¡¼¥¹¥Û¥ë¥À¤ò»È¤Ã¤¿¥±¡¼¥¹¤Ç¤âÀ­Ç½¤Ï¤Û¤È¤ó¤ÉÊѤï¤é¤Ê¤¤¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£ÂÐÈæ¤È¤·¤ÆPEAR::DB¤Î¥×¥ì¡¼¥¹¥Û¥ë¥À¤ò»È¤Ã¤¿¥±¡¼¥¹¤Ç¤Ï¡¢¥Ñ¥é¥á¡¼¥¿¤ÎÀµÅöÀ­¥Á¥§¥Ã¥¯¤ä¡¢¥¨¥¹¥±¡¼¥×½èÍý¤¬¹Ô¤ï¤ì¤ë¤¿¤á¡¢Í½ÁÛ¤·¤¿¤È¤ª¤ê¡¢¥×¥ì¡¼¥¹¥Û¥ë¥À¤ò»ÈÍѤ·¤Ê¤¤¥±¡¼¥¹¤ÈÈæ¤ÙÃÙ¤¯¤Ê¤Ã¤Æ¤¤¤ë¤³¤È¤â¤ï¤«¤ê¤Þ¤¹¡£


¡¦PHP¥¹¥¯¥ê¥×¥È¤Ç¤Ï¤Ê¤¯¡¢C¸À¸ì¤Ç½ñ¤«¤ì¤¿³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ê¤Î¤Ç¡¢¤Û¤«¤ÎÃê¾Ý²½API(PEAR:DB¤äMDB2)¤è¤êÁᤤ¡£¤¿¤À¡¢¥Í¥¤¥Æ¥£¥Ö¤è¤ê¤ÏÃÙ¤¤¡£

¡¦³ÆDBËè¤Î³ÈÄ¥¤Ç¤Ï¤Ê¤¯¡¢¶¦Ä̤Υ¤¥ó¥¿¡¼¥Õ¥§¡¼¥¹¤ÇÀ©¸æ¤Ç¤­¤ë¡£

¡¦¥×¥ê¥Ú¥¢¥É¥¹¥Æ¡¼¥È¥á¥ó¥È¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¡£¡Ê¾¤Ï¥×¥ì¡¼¥¹¥Õ¥©¥ë¥À¤É¤Þ¤ê¡Ë

¡¦ÁȤ߹þ¤ß¤Ê¤Î¤Ç¡¢¥¤¥ó¥¹¥È¡¼¥ë¤ÎɬÍפʤ·¡£

¡¦Àܳ¤¬¥¢¥¯¥Æ¥£¥Ö¤Ç¤¢¤ê³¤±¤Þ¤¹¡£Àܳ¤òÊĤ¸¤ë¤Ë¤Ï¡¢Â¾¤«¤é »²¾È¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤òÊݾ㤹¤ë¤³¤È¤Ç¥ª¥Ö¥¸¥§¥¯¥È¤òÇË´þ¤¹¤ë ɬÍפ¬¤¢¤ê¤Þ¤¹¡£¤½¤ì¤Ë¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤òÊÝ»ý¤·¤Æ¤¤¤ëÊÑ¿ô¤ËÂФ·¤Æ NULL ¤òÂåÆþ¤·¤Þ¤¹¡£ ÌÀ¼¨Åª¤Ë¤³¤ì¤ò¹Ô¤ï¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢¥¹¥¯¥ê¥×¥È¤Î½ªÎ»»þ¤Ë¼«Æ°Åª¤Ë Àܳ¤¬ÊĤ¸¤é¤ì¤Þ¤¹¡£

¡¦¥Ç¥Õ¥©¥ë¥È¤Ï¼«Æ°¥³¥ß¥Ã¥È¤Ç¥È¥é¥ó¥¶¥¯¥·¥ç¥ó¤ÏÉԲġ£beginTransaction()¤Ç¥È¥é¥ó¥¶¥¯¥·¥ç¥óÀ©¸æ¤ò¤ª¤³¤Ê¤¦¡£

PHP JSON

json_last_error — ľ¶á¤ËȯÀ¸¤·¤¿¥¨¥é¡¼¤òÊÖ¤¹

// ̾Á°¤ÈÃͤϥÀ¥Ö¥ë¥¯¥©¡¼¥È¤Ç°Ï¤àɬÍפ¬¤¢¤ê¤Þ¤¹¡£

// ¥·¥ó¥°¥ë¥¯¥©¡¼¥È¤Ï»È¤¨¤Þ¤»¤ó



JSON¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤Ä¤¤¤Æ

{  //Á´ÂΤòÃæ³ç¸Ì¤Ç°Ï¤à¡£

  "blog" : "http://example.com",  //key : value¤Î·Á¼°¡£¤É¤Á¤é¤â""¤Ç°Ï¤à¡£
  "interests":["WEb","XML"],      //ÇÛÎó
  "flag" : true       //true¤Èfalse¤Î¤ß¡£¾®Ê¸»úɬ¿Ü¡£
  "obj" : {  //¥ª¥Ö¥¸¥§¥¯¥È¡£
    "first":"¥Õ¥¡¡¼¥¹¥È",
    "second":"¥»¥«¥ó¥É"
  }                 
}

ÃÙ±äÀÅŪ«Çû (Late Static Bindings)

http://php.net/manual/ja/language.oop5.late-static-bindings.php

¡Ê²ò¼á¤¢¤Ã¤Æ¤ë¤«¤Ê¡¼¡©¡Ë

5.3°Ê¹ß¤ÇÄɲ䵤줿µ¡Ç½¡£

ÄÌ¾ï¿Æ¥¯¥é¥¹¤Î¥¹¥¿¥Æ¥£¥Ã¥¯¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤·¤¿¾ì¹ç¡¢¤½¤ÎÃæ¤Ç¡Öself::¡×¤òÀë¸À¤·¤Æ¤¤¤ë¤È¡¢¿Æ¥¯¥é¥¹¤ÎÃÍ/¥á¥½¥Ã¥É¤¬ÍøÍѤµ¤ì¤ë¡£¤³¤ì¤ò¸Æ¤Ó½Ð¤·¸µ¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¡¢ÄêµÁ¤¹¤ë¤Î¤¬¡¢¤³¤ÎÃÙ±äÀÅŪ«Çû¤È¤¤¤¦¤­¤Î¤¦¤Ç¡¢¿Æ¥¯¥é¥¹Â¦¤Ç ¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·¤ò¡Östatic::¡×¤ÈÀë¸À¤¹¤ë¤³¤È¤ÇÍøÍѤǤ­¤ë¡£



ÀÅŪ·Ñ¾µ¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ç¸Æ¤Ó½Ð¤·¸µ¤Î¥¯¥é¥¹¤ò»²¾È¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£

self¤È¤«parent¤Ç¡¢¼«¿È¤Î¥¯¥é¥¹¤ò¼¨¤¹¤«¡¢¿Æ¤Î¥¯¥é¥¹¤ò¼¨¤¹¤«¤È¤¤¤Ã¤¿¤È¤³¤í¡£

self:: ¤¢¤ë¤¤¤Ï __CLASS__ ¤Ë¤è¤ë¸½ºß¤Î¥¯¥é¥¹¤Ø¤ÎÀÅŪ»²¾È¤Ï¡¢ ¤½¤Î¥á¥½¥Ã¥É¤¬Â°¤¹¤ë¥¯¥é¥¹ (¤Ä¤Þ¤ê¡¢ ¤½¤Î¥á¥½¥Ã¥É¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥¯¥é¥¹) ¤Ë²ò·è¤µ¤ì¤Þ¤¹¡£

ÃÙ±äÀÅŪ«Çû¤Ï¡¢¤³¤ÎÀ©¸Â¤ò²ò·è¤¹¤ë¤¿¤á¤Î¥­¡¼¥ï¡¼¥É¤òƳÆþ¤·¡¢ ¼Â¹Ô»þ¤ËºÇ½é¤Ë¥³¡¼¥ë¤µ¤ì¤¿¥¯¥é¥¹¤ò»²¾È¤¹¤ë¤è¤¦¤Ë¤·¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¥­¡¼¥ï¡¼¥É¤ò»ÈÍѤ¹¤ë¤È¡¢Àè¤Û¤É¤ÎÎã¤Ë¤ª¤±¤ë test() ¤«¤é B ¤ò»²¾È¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤³¤Î¥­¡¼¥ï¡¼¥É¤Ï¿·¤¿¤ËÄɲä·¤¿¤â¤Î¤Ç¤Ï¤Ê¤¯¡¢¤¹¤Ç¤ËͽÌóºÑ¤ß¤Ç¤¢¤ë static ¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¡£

¥ê¥Õ¥ì¥¯¥·¥ç¥ó

http://blog.asial.co.jp/751

http://php.net/manual/ja/book.reflection.php


¾ðÊ󹩳ؤˤª¤¤¤Æ¥ê¥Õ¥ì¥¯¥·¥ç¥ó (reflection) ¤È¤Ï¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô²áÄø¤Ç¥×¥í¥°¥é¥à¼«¿È¤Î¹½Â¤¤òÆÉ¤ß¼è¤Ã¤¿¤ê½ñ¤­´¹¤¨¤¿¤ê¤¹¤ëµ»½Ñ¤Î¤³¤È¤Ç¤¢¤ë¡£

ReflectionClass¥¯¥é¥¹¤Ï¥¯¥é¥¹¤ÎÄêµÁ¾ðÊó¤òÆÉ¤ß¹þ¤ó¤ÇÍÍ¡¹¤Ê¾ðÊó¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£Äê¿ô¤ä¥×¥í¥Ñ¥Æ¥£¡¢¥á¥½¥Ã¥É¾ðÊó¤Î¼èÆÀ¡¢¿Æ¥¯¥é¥¹¤ä¼ÂÁõ¤·¤Æ¤¤¤ë¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Î¼èÆÀ¡¢final¤«abstract¤«¤ÎȽÄê¡¢¥¯¥é¥¹¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤Î¼èÆÀ¡¢¥¤¥ó¥¹¥¿¥ó¥¹¤ÎÀ¸À®¤Ê¤É¡¢ËÜÅö¤ËÍÍ¡¹¤Ç¤¹¡£

»È¤¤¤É¤³¤í

¤µ¤Æ¡¢¥ê¥Õ¥ì¥¯¥·¥ç¥ó¤Ë¤Ä¤¤¤Æ´Êñ¤Ë¤´ÀâÌÀ¤·¤Þ¤·¤¿¤¬¡¢¤³¤ì¤ò»È¤¦¤È²¿¤¬´ò¤·¤¤¤Î¤Ç¤·¤ç¤¦¤«¡©ÀµÄ¾¤Ê¤È¤³¤í¡¢ÉáÄÌ¤Ë¥×¥í¥°¥é¥à¤òÁȤó¤Ç¤¤¤Æ»È¤¦¤³¤È¤ÏÌÇ¿¤Ë¤Ê¤¤¤Î¤«¤Ê¤È»×¤¤¤Þ¤¹¡£

»È¤¤¤É¤³¤í¤È¤·¤Æ¤Þ¤ºµó¤²¤é¤ì¤ë¤Î¤ÏsetAccessible()¥á¥½¥Ã¥É¤Ë¤è¤ëprivate¥á¥½¥Ã¥É¤Î¥Æ¥¹¥È¤Ç¤·¤ç¤¦¤«¡£

¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ÎÆâÉô¤ÇÍøÍѤµ¤ì¤ë¤³¤È¤Ï³ä¤È¿¤¤¤«¤È»×¤¤¤Þ¤¹¡£ÆÃÄê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ø¤Î¥Ñ¥¹¤ò¼èÆÀ¤¹¤ë¤¿¤á¡¢¤¢¤ë¥¯¥é¥¹¤ÎÄêµÁ¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤«¤é¥Ñ¥¹¤òµÕ»»¤¹¤ë¡¢¤È¤¤¤¦¤³¤È¤ò¤·¤Æ¤¤¤ë¥³¡¼¥É¤Ï²¿ÅÙ¤«¸«¤¿¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£


¢¨¥¤¥ó¥¹¥Ú¥¯¥¿¡¼¤È²¿¤¬¤Á¤¬¤¦¤Î¤«¡¼?

¥¯¥í¡¼¥¸¥ã¡¼

http://dqn.sakusakutto.jp/2009/01/javascript_1.html

¥¯¥í¡¼¥¸¥ã (¥¯¥í¡¼¥¸¥ã¡¼¡¢Closure) ¤Ï¡¢¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ë¤ª¤¤¤Æ°ú¿ô°Ê³°¤ÎÊÑ¿ô¤ò¼Â¹Ô»þ¤Î´Ä¶­¤Ç¤Ï¤Ê¤¯¡¢¼«¿È¤¬ÄêµÁ¤µ¤ì¤¿´Ä¶­¡ÊÀÅŪ¥¹¥³¡¼¥×¡Ë¤Ë¤ª¤¤¤Æ²ò·è¤¹¤ë´Ø¿ô¤Î¤³¤È¤Ç¤¢¤ë¡£


¤¤¤¤½ê¡£¥¯¥í¡¼¥¸¥ã¤ò»È¤¦¤È¡¢¤³¤Î¤è¤¦¤Ë¡Ö¾õÂÖ¤òÊÝ»ý¤¹¤ë´Ø¿ô¡×¤òºî¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¡¡¡¡¡¡¡¡¢ª¥ª¥Ö¥¸¥§¥¯¥È¤ß¤¿¤¤¤Ê¤â¤ó¤À¤è¤Í¡£

staticÊÑ¿ô¤ò»È¤Ã¤Æ¼Â¸½¤·¤Þ¤¹¡£

´Ø¿ô·¿¥×¥í¥°¥é¥ß¥ó¥°

¤¹¤Ù¤Æ¤Î·×»»¤Ï´Ø¿ô¤Îɾ²Á¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£

¥é¥à¥À¤ä¥¯¥í¡¼¥¸¥ã¡¼¤Ï¤³¤³¤«¤éȯÀ¸¤·¤¿³µÇ°¡£

¥ì¥­¥·¥«¥ë¥¹¥³¡¼¥×(ÀÅŪ¥¹¥³¡¼¥×)

½ê°âÉáÄÌ¥°¥í¡¼¥Ð¥ë¤¸¤ã¤Ê¤¤¥¹¥³¡¼¥×¡£

´Ø¿ô¹½Â¤¤«¤é·è¤Þ¤ë¤Î¤Ç¥ì¥­¥·¥«¥ë(¹½Ê¸)¥¹¥³¡¼¥×¤È¸Æ¤Ð¤ì¤ë¡£

PHP ¥é¥à¥À¡¡¥¯¥í¡¼¥¸¥ã¡¼

http://www.ibm.com/developerworks/jp/opensource/library/os-php-lambda/?cmp=dw&cpb=dwope&ct=dwrss&cr=dwrss&ccy=jp&csr=012111

http://www.ibm.com/developerworks/jp/opensource/library/os-php-lambda/?cmp=dw&cpb=dwope&ct=dwrss&cr=dwrss&ccy=jp&csr=012111

¤¤¤Ã¤¿¤¤¥é¥à¥À¤È¥¯¥í¡¼¥¸¥ã¡¼¤È¤Ï²¿¤Ê¤Î¤Ç¤·¤ç¤¦¡£

¢£¥é¥à¥À¤È¤Ï(̵̾´Ø¿ô¤Î¤³¤È¡£)

¥é¥à¥À¤Ï¼ÂºÝ¤Ë¤Ï̵̾´Ø¿ô¤Ç¤·¤«¤¢¤ê¤Þ¤»¤ó¡£Î㤨¤Ð¡¢°Ê²¼¤Î´Ø¿ôÄêµÁ¤Ï¥é¥à¥À¤Ç¤¹¡£

$horse = function() {return "with no name";};
print $horse();

»È¤¤Êý¡§

´Ø¿ô¤ä¥á¥½¥Ã¥É¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤È¤·¤Æ¥ª¥ó¥¶¥Õ¥é¥¤¤Ç¥é¥à¥À¤òºîÀ®¤¹¤ë»È¤¤Êý¤Ï¡¢¥é¥à¥À¤Î´ðËÜŪ¤Ê»È¤¤Êý¤Ç¤¹¡£Â¾¤Î´Ø¿ô¤Î¥Ñ¥é¥á¡¼¥¿¡¼¤È¤·¤ÆÅϤµ¤ì¤ë´Ø¿ô¤òɽ¤¹¤¿¤á¤Ë¡¢Ä̾ï¤Ï¥³¡¼¥ë¥Ð¥Ã¥¯¤È¤¤¤¦¸ÀÍÕ¤¬»È¤ï¤ì¤ë¤³¤È¤ËÃí°Õ¤·¤Æ¤¯¤À¤µ¤¤¡£

¢£¥¯¥í¡¼¥¸¥ã¡¼¤È¤Ï

¥é¥à¥À¤¬ÌµÌ¾´Ø¿ô¤Ë¤¹¤®¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¥¯¥í¡¼¥¸¥ã¡¼¤Ï¥é¥à¥À¤Ë¾¯¤·¥³¥ó¥Æ¥­¥¹¥È¤¬Äɲäµ¤ì¤¿ÄøÅ٤Τâ¤Î¤Ë¤¹¤®¤Þ¤»¤ó¡£¤Ä¤Þ¤ê¥¯¥í¡¼¥¸¥ã¡¼¤Ï̵̾´Ø¿ô¤Ç¤¢¤ê¡¢ºîÀ®¤µ¤ì¤ë¤È¡¢¤½¤Î̵̾´Ø¿ô¤òºîÀ®¤·¤¿¥³¡¼¥É¤Î¥¹¥³¡¼¥×¤ÎÊÑ¿ô¤ÎÃͤò¡¢¤½¤Î̵̾´Ø¿ô¼«ÂΤËÄɲä·¤Þ¤¹¡£ÊÑ¿ô¤Ï use ¥­¡¼¥ï¡¼¥É¤Ë¤è¤Ã¤Æ¥¯¥í¡¼¥¸¥ã¡¼¤Ë¥Ð¥¤¥ó¥É¤µ¤ì¤Þ¤¹¡£


¾åµ­¤ÎÎ㤫¤é¤ï¤«¤ë¤è¤¦¤Ë¡¢¥¯¥í¡¼¥¸¥ã¡¼¤Ï»ØÄꤵ¤ì¤¿ÊÑ¿ô¤ËÂФ·¤Æ¡ÖÊĤ¸¤é¤ì¤¿¡×´Ø¿ô¤Ç¤¹¡£¾åµ­¤ÎÎã¤Ï¥¯¥í¡¼¥¸¥ã¡¼¤Î»È¤¤Êý¤Î¹¥Îã¤Ç¤¹¡£¤³¤ÎÎã¤Ç¤Ï¡¢PHP ¤Ë 18 ¼ïÎढ¤ë¡¢´Ø¿ô¤ò°ú¿ô¤Ë¼è¤ëɸ½àŪ¤ÊÇÛÎó´Ø¿ô (array_walk¡¢usort¡¢array_app ¤Ê¤É) ¤Î 1 ¤Ä¤ò»È¤Ã¤Æ¤¤¤Þ¤¹¡£¥¯¥í¡¼¥¸¥ã¡¼¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢¤³¤ì¤é¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¡¼´Ø¿ô¤Î»È¤¤Æ»¤ò³ÈÂ礹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¥¯¥í¡¼¥¸¥ã¡¼¤¬Åо줹¤ë¤Þ¤Ç¤Ï¡¢ÅϤµ¤ì¤¿´Ø¿ô¤Î¼ÂÁõ¤Ï¡¢¤½¤Î´Ø¿ô°ú¿ô¤Î¥³¥ó¥Æ¥­¥¹¥È¤Ë¸ÂÄꤵ¤ì¤Æ¤¤¤Þ¤·¤¿¡£(¼ÂºÝ¤Ë¤Ï¥°¥í¡¼¥Ð¥ë¡¦¥¹¥³¡¼¥×¤ò»ÈÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤¿¤Î¤Ç¡¢¤³¤Îɽ¸½¤Ïɬ¤º¤·¤âÀµ¤·¤¯¤Ï¤¢¤ê¤Þ¤»¤ó¡£¤¿¤À¤·°ìÈÌŪ¤ÊÄÌǰ¤È¤·¤Æ¤Ï¡¢¥°¥í¡¼¥Ð¥ë¡¦¥¹¥³¡¼¥×¤ò»ÈÍѤ¹¤ë¤³¤È¤ÏÎɤ¤¥×¥í¥°¥é¥ß¥ó¥°¤Î½¬´·¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£)

PHP¤Î̾Á°¶õ´Ö

¢¨PHP5¤Ç¥ª¥Ö¥¸¥§¥¯¥È»Ø¸þ¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤«¤é¤Î³µÇ°¡£¥¹¥³¡¼¥×¤È¤Ï°ã¤¤¤Þ¤¹¡£

PHP ¤ÎÀ¤³¦¤Ç¤Ï¡¢Ì¾Á°¶õ´Ö¤Ï¼¡¤Î¤Õ¤¿¤Ä¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤¿¤á¤Î¼êÃʤȤ·¤ÆÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£

¥é¥¤¥Ö¥é¥ê¤ä¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îºî¼Ô¤¬¡¢ ¥¯¥é¥¹¤ä´Ø¿ô¤È¤¤¤Ã¤¿ºÆÍøÍѲÄǽ¤Ê¥³¡¼¥ÉÉôÉʤòºî¤í¤¦¤È¤¹¤ë¤È¤­¤Ë¤³¤ì¤é¤ÎÌäÂê¤Ë¤Ö¤Á¤¢¤¿¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£

­¡¤¢¤Ê¤¿¤¬ºîÀ®¤·¤¿¥³¡¼¥É¤È PHP ¤ÎÁȤ߹þ¤ß¤Î¥¯¥é¥¹/´Ø¿ô/Äê¿ô ¤¢¤ë¤¤¤Ï¥µ¡¼¥É¥Ñ¡¼¥Æ¥£¤Î¥¯¥é¥¹/´Ø¿ô/Äê¿ô¤Î̾Á°¤¬¾×ÆÍ¤¹¤ë

­¢ºÇ½é¤ÎÌäÂê¤ò²ò·è¤¹¤ë¤¿¤á¤Ë¤Ï¡¢Extra_Long_Names ¤Î¤è¤¦¤ÊŤ¤Ì¾Á°¤ò¤Ä¤±¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤

PHP ¤Î̾Á°¶õ´Ö¤Ï¡¢´ØÏ¢¤¹¤ë¥¯¥é¥¹¤ä¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¡¢´Ø¿ô¡¢¤½¤·¤ÆÄê¿ô¤ò¤Ò¤È¤Þ¤È¤á¤Ë¤·¤Æ°·¤¦¤â¤Î¤Ç¤¹¡£


namespace my\name; // "̾Á°¶õ´Ö¤ÎÄêµÁ" ¤ò»²¾È¤¯¤À¤µ¤¤

class MyClass {}
function myfunction() {}
const MYCONST = 1;

$a = new MyClass;
$c = new \my\name\MyClass; // "¥°¥í¡¼¥Ð¥ë¶õ´Ö" ¤ò»²¾È¤¯¤À¤µ¤¤

$a = strlen('hi'); // "̾Á°¶õ´Ö¤Î»ÈÍÑË¡: ¥°¥í¡¼¥Ð¥ë´Ø¿ô/Äê¿ô¤Ø¤Î
                   // °Ü¹Ô" ¤ò»²¾È¤¯¤À¤µ¤¤

$d = namespace\MYCONST; // "namespace ±é»»»Ò¤ª¤è¤Ó __NAMESPACE__ Äê¿ô"
                        // ¤ò»²¾È¤¯¤À¤µ¤¤
$d = __NAMESPACE__ . '\MYCONST';
echo constant($d); // "̾Á°¶õ´Ö¤ª¤è¤ÓưŪ¸À¸ìµ¡Ç½" ¤ò»²¾È¤¯¤À¤µ¤¤
?>|

¢¨Ì¾Á°¶õ´Ö¤Î̾Á°¤È¤·¤Æ PHP ¤ä php ¤Ï»È¤¨¤Þ¤»¤ó¡£

¢¨PHP ¤Î¥³¡¼¥É¤Ê¤é¤Ê¤ó¤Ç¤â̾Á°¶õ´Ö¤Ë´Þ¤á¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤¬¡¢ ¼ÂºÝ¤Ë̾Á°¶õ´Ö¤Î±Æ¶Á¤ò¼õ¤±¤ë¤Î¤Ï¥¯¥é¥¹¤È¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¡¢´Ø¿ô¡¢¤½¤·¤ÆÄê¿ô¤Î 4 ¼ïÎà¤À¤±¤Ç¤¹¡£

̾Á°¶õ´Ö¤òÀë¸À¤¹¤ë¤Ë¤Ï¡¢¥­¡¼¥ï¡¼¥É namespace ¤ò»ÈÍѤ·¤Þ¤¹¡£Ì¾Á°¶õ´Ö¤ò´Þ¤à¥Õ¥¡¥¤¥ë¤Ç¤Ï¡¢Â¾¤Î¥³¡¼¥É¤è¤êÁ°¤Ë¥Õ¥¡¥¤¥ë¤ÎÀèÆ¬¤Ç̾Á°¶õ´Ö¤òÀë¸À¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤¿¤À¤· declare ¥­¡¼¥ï¡¼¥É¤ÏÎã³°¤Ç¤¹¡£

¢¨PHP ¤Ë¤Ï¡¢¸½ºß¤Î̾Á°¶õ´ÖÆâ¤ÎÍ×ÁǤؤΥ¢¥¯¥»¥¹¤òÃê¾Ý²½¤¹¤ë¤¿¤á¤ÎÊýË¡¤¬ 2 Ä̤ꤢ¤ê¤Þ¤¹¡£ ¥Þ¥¸¥Ã¥¯Äê¿ô __NAMESPACE__ ¤ª¤è¤Ó namespace ¥­¡¼¥ï¡¼¥É¤¬¤½¤ì¤Ç¤¹¡£

__NAMESPACE__ ¤ÎÃͤÏʸ»úÎó¤Ç¡¢¸½ºß¤Î̾Á°¶õ´Ö¤Î̾Á°¤¬³ÊǼ¤µ¤ì¤Þ¤¹¡£ ̾Á°¶õ´Ö¤Ë°¤µ¤Ê¤¤¥°¥í¡¼¥Ð¥ë¤Ê¥³¡¼¥É¤Ç¤Ï¡¢¤³¤ÎÃæ¿È¤Ï¶õʸ»úÎó¤È¤Ê¤ê¤Þ¤¹¡£

PEAR¤Î»È¤¤Êý

http://www.phpbook.jp/pear/command/

¥³¥Þ¥ó¥É¤Î´ðËÜ·Á

pear [options] command [command-options] <parameters>

¥Ø¥ë¥×¤Î»²¾È

pear help <command>

¥³¥Þ¥ó¥É°ìÍ÷

PEAR¤ÇÄ󶡤·¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸(list-all)
¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤ë¥Ñ¥Ã¥±¡¼¥¸°ìÍ÷(list)
¥Ñ¥Ã¥±¡¼¥¸¤Î¥¢¥Ã¥×¥°¥ì¡¼¥É(upgrade)
¥¢¥Ã¥×¥°¥ì¡¼¥É¤Ç¤­¤ë¤â¤Î¤Î³Îǧ(list-upgrade)
¥Ñ¥Ã¥±¡¼¥¸¤Î¥¤¥ó¥¹¥È¡¼¥ë(install)
¥Ñ¥Ã¥±¡¼¥¸¤Î¥¢¥ó¥¤¥ó¥¹¥È¡¼¥ë(uninstall)
ÍøÍѲÄǽ¤Ê¥Á¥ã¥Í¥ë¤Î°ìÍ÷(list-channels)
¥Á¥ã¥Í¥ë¤ÎÅÐÏ¿(channel-discover)
¥Á¥ã¥Í¥ë¤Îºï½ü(channel-delete)

PHP¤Ë¤ª¤±¤ëÆüÉÕ

´Ø¿ô


¥¯¥é¥¹

http://www.php.net/manual/ja/book.datetime.php

(5.3¤«¤éÄɲ䵤줿¥¯¥é¥¹)

http://d.hatena.ne.jp/t_komura/20100111/1263201327

SPL¡ÊStandard PHP Library¡Ë

¡¡³µÍ×

http://d.hatena.ne.jp/pasela/20081101/iterator

http://www.atmarkit.co.jp/fcoding/articles/php5dev/03/php5dev03a.html

http://d.hatena.ne.jp/pasela/20081101/iterator

PHP5.3¤Ç¤Ï¡¢¸À¸ì½èÍý·Ï¤ò¥Ó¥ë¥É¤¹¤ëºÝ¤Ëɬ¤ºStandard PHP Library(SPL)¤¬ÁȤ߹þ¤Þ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¡¢¤³¤ì¤ò³°¤¹¤³¤È¤¬¤Ç¤­¤Ê¤¯¤Ê¤Ã¤¿¡£¤½¤ì¤ÈƱ»þ¤Ë¤¤¤¯¤Ä¤«¤Î¥¯¥é¥¹¤¬Äɲ䵤줿¡£

µ¡Ç½¤ÏÂ礭¤¯²¼µ­¤Î»°¤Ä

¡¢¥×¥í¥°¥é¥àÆâ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Î¾õÂÖ¤ò´Ñ»¡¡Êobserve¡Ë¤¹¤ë¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ç»È¤ï¤ì¤ë¥Ç¥¶¥¤¥ó¥Ñ¥¿¡¼¥ó¤Î°ì¼ï¡£½ÐÈÇ-¹ØÆÉ·¿¥â¥Ç¥ë¤È¤â¸Æ¤Ð¤ì¤ë¡£°ÅÌÛŪ¸Æ¤Ó½Ð¤·¤Î¸¶Â§¤È´Ø·¸¤¬¿¼¤¤¡£

  • Îã³°
    • Îã³°¤Ïɸ½àException¥¯¥é¥¹¤«¤éÇÉÀ¸¤·¤¿InvalidArgumentException¤È¤«OutOfBoundsException¤È¤«¤½¤¦¤¤¤¦¤ä¤Ä¡£

¾ÜºÙ

¥¤¥Æ¥ì¡¼¥¿

ñ½ã¤Ë¸À¤¦¤È¡¢¥¤¥Æ¥ì¡¼¥¿¤ò·Ñ¾µ¤·¤¿¥¯¥é¥¹¤òÍѤ¤¤ë¤³¤È¤Ç¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ËÂФ·¤Æ¡¢foreach¤Ç³ÆÍ×ÁǤ˥¢¥¯¥»¥¹¤¹¤ëºÝ¤Ë¡¢¤½¤ÎÍ×ÁǤËÂФ¹¤ë½èÍý¤ò¥¤¥Æ¥ì¡¼¥¿¤Ë»ý¤¿¤»¤ë¤³¤È¤¬¤Ç¤­¤ë¡£

PHP4¤Ç¤Ï¡¢¥¤¥Æ¥ì¡¼¥¿¤Î¤è¤¦¤Ê¤â¤Î¤È¤·¤ÆPHP¼«¿È¤¬ÍѰդ·¤Æ¤¤¤¿µ¡Ç½¤Ëforeach¤¬¤¢¤Ã¤¿¡£¤³¤ì¤ò»È¤¦¤³¤È¤Ç¥×¥í¥Ñ¥Æ¥£¤Ø¤Î½ç¼¡¥¢¥¯¥»¥¹¤¬¹Ô¤¨¤¿¤¬¡¢foreach¤Ïñ¤Ë¥ª¥Ö¥¸¥§¥¯¥È¤Î¥³¥ì¥¯¥·¥ç¥ó¤ò¸Æ¤Ó½Ð¤·¤Æ¤¤¤ë¤Ë¤¹¤®¤º¡¢¤½¤Î¥Ç¡¼¥¿¤ò²Ã¹©¤¹¤ë½èÍý¤ò¥ë¡¼¥×Æâ¤Ëµ­½Ò¤¹¤ëɬÍפ¬¤¢¤Ã¤¿¡£

¡¡PHP5¤«¤é¤Ï¡¢Iterator¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤òÍøÍѤ¹¤ë¤³¤È¤Ç¡¢ÆÃÄê¤Î½èÍý¤ò·«¤êÊÖ¤·¹Ô¤Ã¤¿·ë²Ì¤òÊÖ¤¹¤È¤¤¤Ã¤¿¥í¥¸¥Ã¥¯¤ò¡¢¥ë¡¼¥×Æâ¤«¤éÀÚ¤êÎ¥¤·¤Æ¥ª¥Ö¥¸¥§¥¯¥È¦¤Ë¼ÂÁõ¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£

³Æ¥á¥½¥Ã¥É¤Ïforeach¤Ç¤Î¥¢¥¯¥»¥¹¤ÎºÝ¤Ë¼«Æ°Åª¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤ì¤é¤Î¥á¥½¥Ã¥É¤ËÂФ·¤Æ¤½¤ì¤¾¤ìŬÀڤʽèÍý¤òµ­½Ò¤¹¤ë¤³¤È¤Ç¥¤¥Æ¥ì¡¼¥¿¤ò¼ÂÁõ¤Ç¤­¤ë¡£