foreachã¯å¥åŠãªæ¹æ³ä»¥äžã«æ©èœããããšãããããããã®çãã翻蚳ãããšåœ¹ç«ã€ããšãããããŸããã
泚æïŒãã®ããã¹ãã¯ãPHPã®zval'ovã®æ©èœã«é¢ããåºæ¬çãªç¥èã®ååšã瀺ããŠããŸããç¹ã«ãrefcountãšis_refãäœã§ããããç¥ã£ãŠããå¿ èŠããããŸãã
foreachã¯ããŸããŸãªã¿ã€ãã®ãšã³ãã£ãã£ã§åäœããŸããé åãåçŽãªãªããžã§ã¯ãïŒäœ¿çšå¯èœãªããããã£ããªã¹ããããŠããå ŽåïŒãããã³Traversableãªããžã§ã¯ãïŒãŸãã¯ãå éšget_iteratorãå®çŸ©ãããŠãããªããžã§ã¯ãïŒã䜿çšããŸãã ããã§ã¯äž»ã«é åã«ã€ããŠèª¬æããŠããŸãããæ®ãã«ã€ããŠã¯æåŸã«èª¬æããŸãã
éå§ããåã«ãã³ã³ããã¹ããç解ããããã«éèŠãªé åãšãã®èµ°æ»ã«é¢ããããã€ãã®åèªã
é åãã©ããŒãµã«ã®ä»çµã¿
PHPã®é åã¯é åºä»ããããããã·ã¥ããŒãã«ã§ããïŒããã·ã¥èŠçŽ ã¯äºéã«ãªã³ã¯ããããªã¹ãã«çµåãããŸãïŒãforeachã¯æå®ãããé åºã«åŸã£ãŠé åãèµ°æ»ããŸãã
PHPã«ã¯ãé åããã©ããŒã¹ãã2ã€ã®æ¹æ³ããããŸãã
- æåã®æ¹æ³ã¯ãå éšé åãã€ã³ã¿ãŒã§ãã ãã®ãã€ã³ã¿ãŒã¯HashTableæ§é ã®äžéšã§ãããããã·ã¥ããŒãã«å ã®çŸåšã®ã¢ã€ãã ãžã®ãã€ã³ã¿ãŒã«ãããŸããã å éšé åãã€ã³ã¿ãŒã¯å 責ã§å€æŽã§ããŸããã€ãŸããçŸåšã®èŠçŽ ãåé€ããããšãå éšé åãã€ã³ã¿ãŒã¯æ¬¡ã®èŠçŽ ã«ç§»åããŸãã
- 2çªç®ã®å埩ã¡ã«ããºã ã¯ãHashPositionãšåŒã°ããå€éšé åãã€ã³ã¿ãŒã§ãã ããã¯ãé åã®å éšãã€ã³ã¿ãŒãšã»ãŒåãã§ãããHashTableã®äžéšã§ã¯ãããŸããã ãã®å€éšå埩ã¡ãœããã¯ãå€æŽããŠãå®å šã§ã¯ãããŸããã HashPositionãæãã¢ã€ãã ãåé€ãããšãã¶ãäžãããã€ã³ã¿ãŒãæ®ããããã»ã°ã¡ã³ããŒã·ã§ã³ãšã©ãŒãçºçããŸãã
ãããã£ãŠãå€éšé åãã€ã³ã¿ãŒã¯ãã«ã¹ã¿ã ã³ãŒããå®è¡ãããªãããšãå®å šã«ç¢ºä¿¡ããŠããå Žåã«ã®ã¿äœ¿çšã§ããŸãã ãŸãããã®ãããªã³ãŒãã¯ããšã©ãŒãã³ãã©ãŒããã¹ãã©ã¯ã¿ãŒãªã©ãæãäºæããªãå Žæã«ããå¯èœæ§ããããŸãã ãã®ãããã»ãšãã©ã®å ŽåãPHPã¯å€éšãã€ã³ã¿ãŒã§ã¯ãªãå éšãã€ã³ã¿ãŒã䜿çšããå¿ èŠããããŸãã ãã以å€ã®å ŽåããŠãŒã¶ãŒãç°åžžãªæäœãéå§ãããšããã«ãã»ã°ã¡ã³ããŒã·ã§ã³éåã«ããPHPãèœã¡ãå¯èœæ§ããããŸãã
å éšãã€ã³ã¿ã®åé¡ã¯ãHashTableã®äžéšã§ãããšããããšã§ãã ãããã£ãŠããããå€æŽãããšãHashTableãäžç·ã«å€æŽãããŸãã ãŸããPHPã®é åãžã®ã¢ã¯ã»ã¹ã¯ïŒåç §ã§ã¯ãªãïŒå€ã«ãã£ãŠè¡ããããããã«ãŒãå ã®èŠçŽ ããã€ãã¹ããããã«é åãã³ããŒããå¿ èŠããããŸãã
ã³ããŒã®éèŠæ§ã瀺ãç°¡åãªäŸïŒã¡ãªã¿ã«ãããã»ã©çããããšã§ã¯ãããŸããïŒãããã¯ãã¹ããããå埩ã§ãïŒ
foreach ($array as $a) { foreach ($array as $b) { // ... } }
ããã§ã¯ãäž¡æ¹ã®ã«ãŒããç¬ç«ããã1ã€ã®ãã€ã³ã¿ãŒã§æããã®ã¯é£ãããããŸããã
ããã§ãç§ãã¡ã¯foreachã«ãªããŸããã
foreachã§ã®é åãã©ããŒãµã«
ããã§ãforeachãé åãã³ããŒããåã«é åã®ã³ããŒãäœæããå¿ èŠãããçç±ãããããŸããã ããããããã¯æããã«å šäœã®è©±ã§ã¯ãããŸããã PHPãã³ããŒãäœæãããã©ããã¯ãããã€ãã®èŠå ã«äŸåããŸãã
- å埩å¯èœãªé
åãåç
§ã®å Žåãã³ããŒã¯è¡ãããã代ããã«addrefãå®è¡ãããŸãã
$ref =& $array; // $array has is_ref=1 now foreach ($array as $val) { // ... }
ãªãã§ïŒ é åãžã®å€æŽã¯ãå éšãã€ã³ã¿ãå«ããåç §ã«ãã£ãŠäŒæããå¿ èŠãããããã§ãã ãã®å Žåãforeachãã³ããŒãäœæãããšããªã³ã¯ã®ã»ãã³ãã£ã¯ã¹ãç Žå£ãããŸãã - é åã®åç §ã«ãŠã³ãã1ã®å Žåãã³ããŒã¯åã³å€±æããŸãã refcount = 1ã¯ãé åãä»ã®å Žæã§äœ¿çšãããŠããããforeachãçŽæ¥äœ¿çšã§ããããšãæå³ããŸãã refcountãè€æ°ã®å Žåãé åã¯ä»ã®å€æ°ã§åå²ãããå€æŽãé¿ãããããforeachã¯ãããã³ããŒããå¿ èŠããããŸãïŒäžèšã®ãªã³ã¯ã®å Žåã«é¢ä¿ãªãïŒã
- é åãåç §ãããŠããå ŽåïŒforeachïŒ$ array asïŒ$ refïŒïŒ-ã³ããŒé¢æ°ãŸãã¯éã³ããŒé¢æ°ã«é¢ä¿ãªããé åã¯ãªã³ã¯ã«ãªããŸãã
ãããè¬ã®æåã®éšåã§ããã³ããŒæ©èœã§ãã 2çªç®ã®éšåã¯ãçŸåšã®å埩ãã©ã®ããã«å®è¡ããããã§ãããããªãå¥åŠã§ãã æ¢ã«ç¥ã£ãŠããïŒãããŠPHPã§ãã䜿çšãããforeachãšã¯å¥ã®ïŒãéåžžã®ãå埩ãã¿ãŒã³ã¯ã次ã®ããã«ãªããŸãïŒæ¬äŒŒã³ãŒãïŒã
reset(); while (get_current_data(&data) == SUCCESS) { code(); move_forward(); }
foreachå埩ã¯å°ãç°ãªããŸãïŒ
reset(); while (get_current_data(&data) == SUCCESS) { move_forward(); code(); }
éãã¯ãmove_forwardïŒïŒãã«ãŒãã®æåŸã§ã¯ãªããæåã«å®è¡ãããããšã§ãã ãããã£ãŠããŠãŒã¶ãŒã³ãŒããèŠçŽ $ iã䜿çšããå Žåãé åã®å éšãã€ã³ã¿ãŒã¯æ¢ã«èŠçŽ $ i + 1ãæããŸãã
foreachã®ãã®åäœã¢ãŒãã¯ãçŸåšã®èŠçŽ ãåé€ãããå Žåãåã®èŠçŽ ã§ã¯ãªãã次ã®èŠçŽ ã«ç§»åããçç±ã§ããããŸãïŒäºæ³ã©ããïŒã foreachã§å®å šã«æ©èœããããã«ãã¹ãŠãè¡ãããŸãïŒãã ããæããã«ãä»ã®ãã¹ãŠã¯ããŸãæ©èœãããèŠçŽ ãã¹ãããããŸãïŒã
ã³ãŒãã®æå³
äžèšã®åäœã®æåã®çµæã¯ãå€ãã®å Žåforeachãå埩å¯èœãªé åãïŒãã£ãããšïŒã³ããŒããããšã§ãã ããããæããæåŠããŠãã ããïŒã³ããŒã®èŠä»¶ãåé€ããããšããŸãããã人工çãªãã³ãããŒã¯ïŒå埩ã2åé«éã ã£ãïŒãé€ããŠãã©ãã§ãäœæ¥ã®å éãèŠãããšãã§ããŸããã§ããã 人ã ã¯ååã«å埩ããŠããªãããã§ãã
2çªç®ã®çµæã¯ãéåžžãä»ã®çµæã¯ãªãã¯ãã§ãã foreachã®åäœã¯ãåºæ¬çã«ãŠãŒã¶ãŒã«ç解å¯èœã§ãããæ¬æ¥ã©ããã«æ©èœããŸãã ã³ããŒãã©ã®ããã«çºçãããïŒããã³ãŸã£ããçºçãããã©ããïŒãããã³ãã€ã³ã¿ãŒã移åããç¹å®ã®æç¹ã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸããã
ãããŠã3çªç®ã®çµæ-ãããŠãããã§ç§ãã¡ã¯ããªãã®åé¡ã«è¿ã¥ããŠããŸã-æã ãç§ãã¡ã¯ç解ããã®ãé£ããéåžžã«å¥åŠãªè¡åãèŠãŸãã ããã¯ãã«ãŒãå ã§ãã€ãã¹ããé åèªäœãå€æŽããããšãããšç¹ã«çºçããŸãã
å埩äžã«é åãå€æŽãããšãã«è¡šç€ºãããå¢çç·ã®å Žåã®åäœã®å€§èŠæš¡ãªã³ã¬ã¯ã·ã§ã³ã¯ãPHPãã¹ãã§èŠã€ããããšãã§ããŸãã ãã®ãã¹ãããå§ããŠãã¢ãã¬ã¹ã®012ãã013ã«å€æŽããããšãã§ããŸãã foreachåäœãããŸããŸãªç¶æ³ïŒãªã³ã¯ã®ããããçš®é¡ã®çµã¿åãããªã©ïŒã§ã©ã®ããã«çŸããããããããŸãã
äŸã«æ»ããŸãããïŒ
foreach ($array as $item) { echo "$item\n"; $array[] = $item; } print_r($array); /* Output in loop: 1 2 3 4 5 $array after loop: 1 2 3 4 5 1 2 3 4 5 */
ããã§ã$é åã¯ã«ãŒãã®åã«refcount = 1ãæã€ãããã³ããŒãããŸããããaddrefãååŸããŸãã å€ã$ array []ã«å²ãåœãŠããšãzvalã¯åå²ããããããèŠçŽ ãšå埩å¯èœé åãè¿œå ããé åã¯2ã€ã®ç°ãªãé åã«ãªããŸãã
foreach ($array as $key => $item) { $array[$key + 1] = $item + 2; echo "$item\n"; } print_r($array); /* Output in loop: 1 2 3 4 5 $array after loop: 1 3 4 5 6 7 */
æåã®ãã¹ããšåãç¶æ³ã
// , , foreach var_dump(each($array)); foreach ($array as $item) { echo "$item\n"; } var_dump(each($array)); /* Output array(4) { [1]=> int(1) ["value"]=> int(1) [0]=> int(0) ["key"]=> int(0) } 1 2 3 4 5 bool(false) */
åã³åã話ã foreachã«ãŒãã§ã¯ãrefcount = 1ã«ãªããaddrefã®ã¿ãååŸãããå éšãã€ã³ã¿ãŒ$é åãå€æŽãããŸãã ã«ãŒãã®çµããã§ããã€ã³ã¿ãŒã¯NULLã«ãªããŸãïŒããã¯ãå埩ãå®äºããããšãæå³ããŸãïŒã ãããããfalseãè¿ãããšã§ããã瀺ããŠããŸãã
foreach ($array as $key => $item) { echo "$item\n"; each($array); } /* Output: 1 2 3 4 5 */
foreach ($array as $key => $item) { echo "$item\n"; reset($array); } /* Output: 1 2 3 4 5 */
é¢æ°eachãšresetã¯äž¡æ¹ãšãåç §ã«ãã£ãŠåç §ãããŸãã $é åã®å Žåãrefcount = 2ã«ãªããŸãããã®çµæãåå²ããå¿ èŠããããŸãã ç¹°ãè¿ããŸãããforeachã¯å¥ã®é åã§åäœããŸãã
ãããããããã®äŸã¯ååã«èª¬åŸåããããŸããã ã«ãŒãã§currentã䜿çšãããšãåäœã¯æ¬åœã«äºæž¬äžå¯èœã«ãªããŸãã
foreach ($array as $val) { var_dump(current($array)); } /* Output: 2 2 2 2 2 */
ããã§ã¯ãé åãå€æŽããŸããããcurrentãåç §ãããããšã«æ³šæããŠãã ããã ããã¯ãåç §ã«ãã£ãŠã¢ã¯ã»ã¹ãããnextãªã©ãä»ã®ãã¹ãŠã®é¢æ°ãšé£æºããŠåäœããããã«å¿ èŠã§ãïŒå®éã«ã¯ãçŸåšã¯refé¢æ°ã§ããããšãæãŸããã§ããå€ãååŸã§ããŸãããå¯èœã§ããã°ãªã³ã¯ã䜿çšããŸãïŒã åç §ã¯ãé åãåé¢ããå¿ èŠãããããšãæå³ããŸãããããã£ãŠãforeachã䜿çšãã$é åãš$é åã®ã³ããŒã¯ç¬ç«ããŠããŸãã 1ã§ã¯ãªã2ãååŸããçç±ã«ã€ããŠãäžèšã§èª¬æããŸãããforeachã¯ãé åãã€ã³ã¿ãŒããŠãŒã¶ãŒã³ãŒãã®å é ã«æ¡åŒµããåŸã§ã¯ãããŸããã ãããã£ãŠãã³ãŒãããŸã æåã®èŠçŽ ã§åäœããŠããå Žåã§ããforeachã¯æ¢ã«2çªç®ã®èŠçŽ ã«ãã€ã³ã¿ãŒã移åããŠããŸãã
次ã«ãå°ããªå€æŽãè©Šã¿ãŸãã
$ref = &$array; foreach ($array as $val) { var_dump(current($array)); } /* Output: 2 3 4 5 false */
ããã§ã¯is_ref = 1ãªã®ã§ãé åã¯ã³ããŒãããŸããïŒäžèšã®ãšããïŒã ããããis_refãååšããå Žåãé åãåå²ããå¿ èŠããªããªããã«ã¬ã³ããžã®åç §æž¡ããšãªããŸãã çŸåšãçŸåšãšforeachã¯åãé åã§åäœããŸãã foreachããã€ã³ã¿ãŒãåŠçãããšããçç±ã ãã§ãé åã1ã€ã·ããããŠããããšãããããŸãã
ãªã³ã¯ã«ããé åãã©ããŒãµã«ãå®è¡ãããšãåãããšãããããŸãã
foreach ($array as &$val) { var_dump(current($array)); } /* Output: 2 3 4 5 false */
ããã§æãéèŠãªããšã¯ãforeachãåç §ã«ãã£ãŠã«ãŒããããšãã«$é åis_ref = 1ãå²ãåœãŠããããäžèšãšåãã«ãªãããšã§ãã
å¥ã®å°ããªããªãšãŒã·ã§ã³ãããã§ã¯é åãå¥ã®å€æ°ã«å²ãåœãŠãŸãã
$foo = $array; foreach ($array as $val) { var_dump(current($array)); } /* Output: 1 1 1 1 1 */
ããã§ã¯ãã«ãŒãã®éå§æã«$é åã®åç §ã«ãŠã³ãã2ã«èšå®ãããŠãããããéå§ããåã«ã³ããŒãäœæããå¿ èŠããããŸãã ãããã£ãŠã$é åãšforeachã§äœ¿çšãããé åã¯ãæåãšã¯ç°ãªããŸãã ãã®ãããã«ãŒãã®éå§åã«é¢é£ããŠããé åã®å éšãã€ã³ã¿ãŒã®äœçœ®ãååŸããŸãïŒãã®å Žåãæåã®äœçœ®ã«ãããŸããïŒã
ãªããžã§ã¯ãã®å埩
ãªããžã§ã¯ããå埩åŠçããå Žåã次ã®2ã€ã®ã±ãŒã¹ãèæ ®ããã®ãçã«ããªã£ãŠããŸãã
ãªããžã§ã¯ãã¯Traversableã§ã¯ãããŸããïŒãŸãã¯ãget_iteratorå éšãã³ãã©ãŒãå®çŸ©ãããŠããŸããïŒ
ãã®å Žåãå埩ã¯é åã®å Žåãšã»ãŒåãæ¹æ³ã§è¡ãããŸãã åãã³ããŒã»ãã³ãã£ã¯ã¹ã å¯äžã®éãïŒforeachã¯ãçŸåšã®ã¹ã³ãŒãã§äœ¿çšã§ããªãããããã£ãã¹ãããããããã«ããã€ãã®è¿œå ã³ãŒããå®è¡ããŸãã ããã€ãã®èå³æ·±ãäºå®ïŒ
- 宣èšãããããããã£ã®å ŽåãPHPã¯ããããã£ã®ããã·ã¥ããŒãã«ãåæé©åããŸãã ãªããžã§ã¯ããå埩ããå Žåããã®ããã·ã¥ããŒãã«ãåæ§ç¯ããå¿ èŠããããŸãïŒã¡ã¢ãªäœ¿çšéãå¢å ããŸãïŒã ããã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸããã念é ã«çœ®ããŠãã ããã
- åå埩ã§ãããããã£ã®ããã·ã¥ããŒãã«ãå床ååŸãããŸããã€ãŸããPHPã¯get_propertiesãäœåºŠãäœåºŠãåŒã³åºããŸãã ãéåžžã®ãããããã£ã®å Žåãããã¯ããã»ã©éèŠã§ã¯ãããŸããããããããã£ãåçã«äœæãããå ŽåïŒçµã¿èŸŒã¿ã¯ã©ã¹ããããè¡ãããšãå€ãïŒãããããã£ããŒãã«ã¯æ¯ååã«ãŠã³ããããŸãã
ãã©ããŒã¹å¯èœãªãªããžã§ã¯ã
ãã®å Žåãäžèšã®ãã¹ãŠãé©çšãããããšã¯ãããŸããã ãŸããPHPã¯ã³ããŒãããã«ãŒããééãããŸã§ãã€ã³ã¿ãŒãå¢ãããªã©ã®ããªãã¯ã䜿çšããŸããã ééå¯èœãªãªããžã§ã¯ããééããã¢ãŒãã¯ãã¯ããã«äºæž¬å¯èœã§ãããããã«èª¬æããå¿ èŠã¯ãªããšæããŸãã
ã«ãŒãäžã«å埩å¯èœãªãªããžã§ã¯ãã眮ãæãã
ç§ãèšåããªãã£ããã1ã€ã®çããã±ãŒã¹ã¯ãPHPãã«ãŒãäžã«å埩å¯èœãªãªããžã§ã¯ãã眮ãæããå¯èœæ§ãããããšã§ãã ããé åããå§ããŠãéäžã§å¥ã®é åã«çœ®ãæããããšã§ç¶è¡ã§ããŸãã ãŸãã¯ãé åããå§ããŠãããããªããžã§ã¯ãã§çœ®ãæããŸãïŒ
$arr = [1, 2, 3, 4, 5]; $obj = (object) [6, 7, 8, 9, 10]; $ref =& $arr; foreach ($ref as $val) { echo "$val\n"; if ($val == 3) { $ref = $obj; } } /* Output: 1 2 3 6 7 8 9 10 */
ã芧ã®ããã«ãPHPã¯çœ®æãè¡ããããšããã«å¥ã®ãšã³ãã£ãã£ããã€ãã¹ãå§ããŸããã
å埩äžã«é åã®å éšãã€ã³ã¿ãŒãå€æŽãã
ç§ãèšåããªãã£ãforeachåäœã®æåŸã®è©³çŽ°ïŒ æ¬åœã«å¥åŠãªåäœãåŸãããã«äœ¿çšã§ããããïŒïŒã«ãŒãåŠçäžã«é åã®å éšãã€ã³ã¿ãŒãå€æŽããããšãããšã©ããªããŸããã
ããã§ã¯ãæåŸ ãããã®ãåŸãããªãå ŽåããããŸãïŒã«ãŒãã®æ¬äœã§nextãŸãã¯prevãåŒã³åºããšïŒåç §æž¡ãã®å ŽåïŒãå éšãã€ã³ã¿ãŒã移åããããšãããããŸãããããã¯ã€ãã¬ãŒã¿ãŒã®åäœã«åœ±é¿ããŸããã§ããã ãã®çç±ã¯ãforeachã¯ãã«ãŒãã®åãã¹ã®åŸã«ãHashPointerå ã®çŸåšã®èŠçŽ ã®çŸåšã®äœçœ®ãšããã·ã¥ãããã¯ã¢ããããããã§ãã 次ã®ãã¹ã§ãforeachã¯å éšãã€ã³ã¿ãŒã®äœçœ®ãå€æŽããããã©ããã確èªãããã®ããã·ã¥ã䜿çšããŠããã埩å ããããšããŸãã
ãè©ŠããŠã¿ããã®æå³ãèŠãŠã¿ãŸãããã æåã®äŸã¯ãå éšãã€ã³ã¿ãŒãå€æŽããŠãforeachã¢ãŒããå€æŽãããªãããšã瀺ããŠããŸãã
$array = [1, 2, 3, 4, 5]; $ref =& $array; foreach ($array as $value) { var_dump($value); reset($array); } // output: 1, 2, 3, 4, 5
ããã§ãæåã®ãã¹ïŒããŒ1ïŒã§foreachã«ãã£ãŠã¢ã¯ã»ã¹ãããèŠçŽ ã®èšå®ã解é€ããŠã¿ãŸãããã
$array = [1, 2, 3, 4, 5]; $ref =& $array; foreach ($array as $value) { var_dump($value); unset($array[1]); reset($array); } // output: 1, 1, 3, 4, 5
ããã§ãé©åãªããã·ã¥ãæã€èŠçŽ ãèŠã€ããããšãã§ããªãã£ããããã«ãŠã³ã¿ãŒããªã»ãããããŠããããšãããããŸãã
ããã·ã¥ã¯åãªãããã·ã¥ã§ããããšã«æ³šæããŠãã ããã è¡çªãèµ·ãããŸãã 次ã®ããã«è©ŠããŠã¿ãŸãããã
$array = ['EzEz' => 1, 'EzFY' => 2, 'FYEz' => 3]; $ref =& $array; foreach ($array as $value) { unset($array['EzFY']); $array['FYFZ'] = 4; reset($array); var_dump($value); } // output: 1 1 3 4
æåŸ ã©ããã«æ©èœããŸãã EzFYããŒïŒforeachããã£ãããŒïŒãåé€ããããããªã»ãããè¡ãããŸããã è¿œå ã®ããŒãè¿œå ãããããæåŸã«4ã衚瀺ãããŸãã
ãããŠããã«æªç¥ã®ãã®ããã£ãŠããã FYFYããŒãFYFZã«çœ®ãæãããšã©ããªããŸããïŒ è©ŠããŠã¿ãŸãããïŒ
$array = ['EzEz' => 1, 'EzFY' => 2, 'FYEz' => 3]; $ref =& $array; foreach ($array as $value) { unset($array['EzFY']); $array['FYFY'] = 4; reset($array); var_dump($value); } // output: 1 4
ããã§ããµã€ã¯ã«ã¯æ°ããèŠçŽ ã«çŽæ¥æž¡ãããä»ã®ãã¹ãŠãã¹ããããããŸãã ããã¯ãFYFYããŒãEzFYïŒå®éã«ã¯ããã®é åã®ãã¹ãŠã®ããŒãïŒãšè¡çªããããã§ãã ããã«ãFYFYèŠçŽ ã¯ãåé€ãããã°ããã®EzFYèŠçŽ ãšåãã¡ã¢ãªã¢ãã¬ã¹ã«ãããŸãã ãããã£ãŠãPHPã®å Žåãåãããã·ã¥ã§åãäœçœ®ã«ãªããŸãã äœçœ®ãã埩å ããããã¢ã¬ã€ã®çµããã«ç§»è¡ããŸãã