ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î


PHP5ÀÇ »õ·Î¿î ±â´É
12³â Àü
1. ¼Ò°³
¸¸¾à PHP 5°¡ ÀÌÀü ¹öÀü(php 3, php 4)ó·³ ¼º°øÇÒ °ÍÀÎÁö´Â ½Ã°£ÀÌ ¸»ÇØ ÁÙ °ÍÀÌ´Ù. ¸ðµç ´ÜÁ¡ÀÇ PHP¸¦ Á¦°ÅÇϱâ À§ÇÑ ¸ñÀû ¹Ù²ï »õ·Î¿î Ư¡°ú º¯È­´Â Àü¼¼°è¿¡¼­ ÃÖ°íÀÇ À¥ ½ºÅ©¸³Æ® ¾ð¾î·Î¼­ ¼±µµÀûÀÎ À§Ä¡¸¦ Áöų °ÍÀÌ´Ù. ÀÌ Ã¥Àº(ÀÌ ¹®¼­´Â PHP 5 Power Programming¶ó´Â Ã¥ÀÇ 2ÀåÀÔ´Ï´Ù) PHP 5¸¦ ´Ù·ç°í ÀÖ°í, ÀÚ¼¼ÇÏ°Ô »õ·Î¿î Ư¡µµ ÀÖ´Ù. ±×·¸Áö¸¸, PHP 4¿¡ Àͼ÷ÇÑ »ç¶÷µéÀ» À§ÇØ PHP 5¿¡¼­ »õ·Î¿î Á¡À» ¾Ë°í ½ÍÀº »ç¶÷À» À§ÇØ ÀÌ ÀåÀ» ½è´Ù.

2. ¾ð¾î Ư¡
»õ·Î¿î °´Ã¼ ÁöÇâ ¸ðµ¨
Áöºê »ç¶ó½ºÅ°(Zeev Suraski, ÀϺ»ÀÎ?)°¡ PHP 3½ÃÀý¿¡ °´Ã¼ ÁöÇâ ¹®¹ýÀ» Ãß°¡ÇßÀ» ¶§, ±×°ÍÀº °´Ã¼¿¡ Á¢±ÙÇϱâ À§ÇÑ ¹®¹ýÀûÀÎ ¼³ÅÁó·³ Ãß°¡Çß´Ù. °´Ã¼ÁöÇâ ¸ðµ¨Àº »ó¼ÓÀ» Áö¿øÇß°í ¸Þ¼Òµå¿Í ¼Ó¼ºÀ» µÑ ´Ù ÇÕÄ¡±â À§ÇØ Å¬·¡½º¸¦ ¸¸µé¾ú´Ù. ±×·¯³ª ±× ÀÌ»óÀº ¾Æ´Ï¾ú´Ù. Áöºê¿Í ¾Øµð°¡ php 4¸¦ À§ÇÑ ½ºÅ©¸³Æ® ¿£ÁøÀ» ´Ù½Ã ÀÛ¼ºÇÒ ¶§, ±×°ÍÀº ¿ÏÀüÈ÷ »õ·Î¿î ¿£ÁøÀ̾ú°í, º¸´Ù ºü¸£°Ô µ¹¾Æ°¬°í, º¸´Ù ¸¹Àº Ư¡¿¡ ÀûÇÕÇß´Ù. ±×·¸Áö¸¸ °´Ã¼ÁöÇâ ¸ðµ¨Àº PHP 3¿¡¼­ óÀ½ µµÀԵǾú°í, ¹Ì¼÷ÇÑ ºÎºÐÀÌ ÀÖ¾ú´Ù.
ºñ·Ï °´Ã¼ ¸ðµ¨ÀÌ ½É°¢ÇÑ ÇÑ°è°¡ ÀÖ¾úÁö¸¸ ±×°ÍÀÌ Å« ±Ô¸ðÀÇ PHP ¾îÇø®ÄÉÀ̼ÇÀ¸·Î Àü¼¼°è¿¡¼­ È®»êµÇ¾î »ç¿ëµÇ¾ú´Ù. ±×°ÍÀÌ ´ÜÁ¡¿¡µµ ºÒ±¸ÇÏ°í PHP 4·Î OOP Æз¯´ÙÀÓÀÇ ÀλóÀûÀÎ »ç¿ëÀº PHP 5 ¹öÀüÀ» À§ÇÑ ÁÖ¿ä °ü½ÉÀÌ µÇ¾ú´Ù.

PHP 3 & 4ÀÇ ÇÑ°è°¡ ¹«¾ùÀΰ¡? °¡Àå Å« ´ÜÁ¡Àº °´Ã¼ÀÇ º¹»ç Àǹ̰¡ ³×ÀÌƼºê ŸÀÓÀ» À§ÇÑ°Í°ú °°´Ù´Â »ç½ÇÀÌ´Ù. PHP °³¹ßÀÚ¿¡°Ô ¾î¶°ÇÑ ¿µÇâÀ» ¹ÌÃƴ°¡? ¿ì¸®°¡ º¯¼ö¸¦ (°´Ã¼¿¡ ´ëÇÑ ÂüÁ¶) ´Ù¸¥ º¯¼ö¿¡ ÇÒ´çÇÒ ¶§, °´Ã¼ÀÇ º¹»ç´Â »ý¼ºµÈ´Ù. ÀÌ°ÍÀº °­ÇÑ ¼º´É »Ó¸¸ ¾Æ´Ï¶ó php4 ¾îÇø®ÄÉÀ̼ǿ¡¼­ ¹ö±×¸¦ À¯¹ßÇÑ´Ù. ¿Ö³ÄÇÏ¸é ¸¹Àº °³¹ßÀÚ´Â º¯¼ö

¿¹¸¦ µé¸é

class Person {
    var $name;
    function getName() {
        return $this->name;
    }
    function setName($name) {
        $this->name = $name;
    }
    function Person($name) {
        $this->setName($name);
    }
}

function changeName($person, $name) {
    $person->setName($name);
}

$person = new Person("Andi");
changeName($person, "Stig");
print $person->getName();

  


php4¿¡¼­ ÀÌ·± ÄÚµå´Â ¡°Andi¡±¸¦ Ãâ·ÂÇÑ´Ù. ÀÌ ÀÌÀ¯´Â ¿ì¸®°¡ º¯¼ö·Î changeName() ÇÔ¼ö¿¡ °´Ã¼ $personÀ» ³Ñ±â°í, ±×·¡¼­, $personÀº º¹»çµÇ°í changeName()Àº $personÀÇ º¹»ç¿¡¼­ ÀÛ¾÷ÇÑ´Ù. ÀÌ·± µ¿ÀÛÀº ÀÚ¹Ù °°Àº µ¿ÀÛÀ» ±â´ëÇß´ø ¸¹Àº °³¹ßÀÚ¿¡°Ô´Â Á÷°üÀûÀÌÁö ¾Ê´Ù. ÀÚ¹Ù¿¡¼­ º¯¼ö´Â Á¤È®ÀÌ ÇÚµé(¶Ç´Â Æ÷ÀÎÅÍ)À» °´Ã¼¿¡ ºÙµé°í ÀÖ´Ù. ±×·¯¹Ç·Î ±×°ÍÀº ´ÜÁö Çڵ鸸 º¹»çµÉ »Ó Àüü °´Ã¼´Â º¹Á¦µÇÁö ¾Ê´Â´Ù.

PHP 4¿¡¼­ »ç¿ëÀÚ´Â µÎ°¡Áö ºÎ·ù°¡ ÀÖ´Ù, ÀÌ·± ¹®Á¦¸¦ ÀνÄÇÏ´Â °³¹ßÀÚ¿Í ÀνÄÇÏ´Â °³¹ßÀÚÀÌ´Ù.

±¸Çü °´Ã¼ ¸ðµ¨Àº À§¿¡ ¸»ÇÑ ¹®Á¦¸¦ À¯¹ßÇÒ »Ó¸¸ ¾Æ´Ï¶ó Á¸ÀçÇÏ´Â °´Ã¼ ¸ðµ¨ÀÇ »óÀ§¿¡ Ãß°¡ÀûÀΠƯ¡À» ±¸ÇöÇϴµ¥ ¹æÇصǴ ±âº»ÀûÀÎ ¹®Á¦¸¦ À¯¹ßÇϱ⵵ ÇÑ´Ù.

PHP 5¿¡¼­, °´Ã¼ ¸ðµ¨ÀÇ ±â¹ÝÀº °´Ã¼ ÇÚµé·Î ´Ù½Ã ÀÛ¼ºµÇ¾ú°í, ¿©·¯ºÐÀÌ clone Å°¿öµå¸¦ »ç¿ëÇÏ¿© °´Ã¼ÀÇ Å¬·ÐÀ» ¸í½ÃÇÏÁö ¾Ê´Â ÇÑ, ¿©·¯ºÐÀº ¿©·¯ºÐÀÇ °´Ã¼ÀÇ ³»ºÎ¿¡¼­ Àý´ë ¸¸µé Áö ¾Ê´Â´Ù. PHP5¿¡¼­ ÂüÁ¶·Î °´Ã¼¸¦ ³Ñ±â´Â °ÍÀÌ ÇÊ¿äÇÏÁö ¾Ê°í ÂüÁ¶·Î ±×°ÍÀº ÇÒ´çÇÏÁöµµ ¾Ê´Â´Ù.

¾Ë¾ÆµÎ±â:ÂüÁ¶·Î ³Ñ±â´Â °Í°ú ÂüÁ¶·Î ÇÒ´çÇÏ´Â °ÍÀº ¿©ÀüÈ÷ Áö¿øÇÑ´Ù. ÀÌ°æ¿ì¿¡ ¿©·¯ºÐÀº º¯¼öÀÇ ³»¿ëÀ»(°´Ã¼³ª ´Ù¸¥ ŸÀÔ) Á¤È®È÷ ¹Ù²Ù±â¸¦ ¿øÇÑ´Ù.


»õ·Î¿î °´Ã¼ ÁöÇâ Ư¡
»õ·Î¿î °´Ã¼ÁöÇâ Ư¡Àº ÀÌ Àý¿¡¼­ »ó¼¼È÷ ¼³¸íÇϱ⿡ ³Ê¹« ¹æ´ëÇÏ´Ù. °´Ã¼ÁöÇâ ¾ð¾î éÅÍ¿¡¼­ ÀÚ¼¼È÷ ³ª¿ÍÀÖ´Ù.ÁÖ·Î »õ·Î¿î Ư¡ ¸ñ·ÏÀº ¹Ø¿¡ ³ª¿­ÇØ ³õ¾Ò´Ù.
1. ¸Þ¼Òµå¿Í ¼Ó¼ºÀ» À§ÇÑ public/private/protected Á¢±Ù ¼öÁ¤ÀÚ

ÀϹÝÀûÀÎ OO Á¢±Ù ¼öÁ¤ÀÚÀÇ »ç¿ëÀº ¸Þ¼Òµå³ª ¼Ó¼º¿¡ Á¢±ÙÀ» Á¦¾îÇÏ°Ô ÇØÁØ´Ù. class MyClass {
    private $id;

    public function getId() {
        return $this->id;
    }
}

  


2. À¯ÀÏ(unified) »ý¼ºÀÚ À̸§ __construct()

Ŭ·¡½ºÀÇ À̸§ÀÌ µÇ´Â »ý¼ºÀÚ ´ë½Å¿¡, ÀÌÁ¦´Â __construct()·Î ¼±¾ð µÈ´Ù. Ŭ·¡½º °èÃþ ¾È¿¡¼­ Ŭ·¡¼­ÀÇ À̵¿À» ½±°Ô ¸¸µç´Ù. class MyClass {
    function __construct() {
        print "»ý¼ºÀÚ ³»ºÎ";
    }
}

  


3. __destructor() ¸Þ¼Òµå¸¦ Á¤ÀÇÇÔÀ¸·Î¼­, °´Ã¼ ¼Ò¸êÀÚ¸¦ Áö¿øÇÑ´Ù.

°´Ã¼°¡ Æı«µÉ ¶§, ½ÇÇàµÇ´ø ¼Ò¸ê ÇÔ¼ö¸¦ Á¤ÀÇ°¡ Çã¶ôÇÑ´Ù. <?
class MyClass {
    function __destruct() {
        print "°´Ã¼ Æı«";
    }
}
?>

  


4. ÀÎÅÍÆäÀ̽º

is-a °ü°è º¸´Ù ¿ÏÀüÇÏ°Ô Çϱâ À§ÇÑ Å¬·¡½º¸¦ À§ÇÑ ´É·ÂÀ» ÁØ´Ù. Ŭ·¡½º´Â ÇÑ Å¬·¡½º·ÎºÎÅÍ »ó¼Ó¹ÞÀ» ¼ö ÀÖÀ¸³ª ±×°ÍÀÌ ¿øÇÏ´Â °Íó·³ ¸¹Àº ÀÎÅÍÆäÀ̽ºÃ³·³ ±¸ÇöÇÏÁö´Â ¾Ê´Â´Ù. interface Display {
    function display();
}

class Circle implements Display {
    function display() {
        print "Displaying circle";
    }
}

  


5. instanceof ¿¬»êÀÚ

is-a °ü°è È®ÀÎÀ» À§ÇØ ¾ð¾î ¼öÁØÀÇ Áö¿ø. Php4ÀÇ is_a() ÇÔ¼ö´Â Áö±Ý ºñ³­¹Þ´Â´Ù. if ($obj instance of Circle) {
    print '$obj Àº Circle';
}

  


6. final ¸Þ¼Òµå

final ¸Þ¼Òµå Å°¿öµå´Â ¿©·¯ºÐÀÌ »ó¼ÓÇϴ Ŭ·¡½º°¡ ±×°ÍÀ» ¿À¹ö·Îµå ÇÒ¼ö ¾ø´Â °ÍÀ» Ç¥½ÃÇÏ´Â ¸Þ¼ÒµåÀÌ´Ù. class MyClass {
    final function getBaseClassName() {
        return __CLASS__;
    }
}

  


7. final Ŭ·¡½º

final·Î¼­ Ŭ·¡½º¸¦ ¼±¾ðÇÏ°í, ±×°ÍÀº »ó¼ÓÇÒ ¼ö ¾ø´Ù. ´ÙÀ½°ú °°Àº ¿¹Á¦´Â ¿¡·¯¸¦ ³»º¸ÀδÙ. final class FinalClass {
}

class BogusClass extends FinalClass {
}

  


8. ¸í½Ã °´Ã¼ º¹Á¦(cloning)

°´Ã¼¸¦ º¹Á¦Çϱâ À§ÇØ, ¿©·¯ºÐµéÀº clone Å°¿öµå¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ¿©·¯ºÐÀº ¾Æ¸¶ º¹Á¦ óÇÏ´Â µ¿¾È È£ÃâµÉ __clone() ¸Þ¼Òµå¸¦ ¼±¾ðÇßÀ» °ÍÀÌ´Ù. class MyClass {
    function __clone() {
        print "Object is being cloned";
    }
}
$obj = new MyClass(); // ÀÌ°ÍÀº ÀνºÅϽº¸¦ ¸¸µé°í
clone $obj;        // ÀÌ°ÍÀº °´Ã¼¸¦ º¹Á¦ÇÔ

  


9. Ŭ·¡½º »ó¼ö

Ŭ·¡½º Á¤ÀÇ´Â »ó¼ö¸¦ Æ÷ÇÔ ÇÒ ¼öÀÖ°í, Ŭ·¡½º¸¦ ÀÌ¿ëÇÏ¿© ÂüÁ¶µÈ´Ù class MyClass {
    const SUCCESS = "Success";
    const FAILURE = "Failure";
}
print MyClass::SUCCESS;

  


10. Á¤Àû ¸â¹ö

Ŭ·¡½º Á¤ÀÇ´Â ÀÌÁ¦ Ŭ·¡½º¸¦ ÅëÇØ Á¢±Ù °¡´ÉÇÑ Á¤Àû ¸â¹ö(¼Ó¼º)¸¦ Æ÷ÇÔ ÇÒ ¼öÀÖ´Ù. Á¤Àû ¸â¹öÀÇ ÀϹÝÀûÀÎ »ç¿ëÀº µ¶ÀÚ ÆÐÅÏ¿¡¼­ ÀÌ´Ù. class Singleton {
    static $instance = NULL;
    function getInstance() {
        if ($this->instance == NULL) {
            $this->instance = new Singleton();
        }
        return $this->instance;
    }
}

  


11. Á¤Àû ¸Þ¼Òµå

¿©·¯ºÐÀº ÀÌÁ¦ ºñ°´Ã¼ ¹®¸ÆÀ¸·ÎºÎÅÍ È£ÃâµÇ´Â °Í Çã¶ôÇÏ°ÔÇÏ´Â Á¤ÀûÀ¸·Î ¸Þ¼Òµå¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. Á¤Àû ¸Þ¼Òµå´Â ±×µéÀÌ ¸ðµç ƯÁ¤ °´Ã¼¿¡ ¹­ÀÌÁö ¾Ê°í $this º¯¼ö¸¦ Á¤ÀÇ ÇÏÁö ¾Ê´Â´Ù. <?
class MyClass {
    static function helloWorld() {
        print "Hello, world";
    }
}
MyClass::helloWorld();
?>

  


12. Ãß»ó Ŭ·¡½º

Ŭ·¡½º´Â ÀνºÅϽºµÇ´Â°ÍÀ¸·ÎºÎÅÍ ±×°ÍÀ» ¹æÇØÇϱâ À§ÇØ Ãß»óÀ¸·Î ¼±¾ðµÉ ¼ö ÀÖ´Ù. ±×·¸Áö¸¸, ¿©·¯ºÐµéÀº Ãß»ó Ŭ·¡½º·ÎºÎÅÍ »ó¼ÓÇÒ ¼ö ÀÖ´Ù. abstract class MyBaseClass {
    function display() {
        print "Default display routine being called";
    }
}

  


13. Ãß»ó ¸Þ¼Òµå

¸Þ¼Òµå°¡ Ãß»óÀ¸·Î ¼±¾ðµÇ°í, ±× ¶§¹®¿¡ »ó¼ÓÇϴ Ŭ·¡½º¿¡ ±× Á¤ÀǸ¦ ¾çº¸ÇÑ´Ù. Ãß»ó¸Þ¼Òµå¸¦ Æ÷ÇÔÇϴ Ŭ·¡½º´Â Ãß»óÀ¸·Î ¼±¾ðµÈ´Ù. abstract class MyBaseClass {
    abstract function display();
}

  


14. Ŭ·¡½º ŸÀÔ ÈùÆ®

ÇÔ¼ö ¼±¾ðÀº ÆĶó¹ÌÅ͸¦ À§ÇØ Å¬·¡½º ŸÀÔ ÈùÆ®¸¦ Æ÷ÇÔÇϱ⵵ ÇÑ´Ù. ¸¸¾à ÇÔ¼ö°¡ ºÎÀûÀýÇÑ Å¬·¡½º ŸÀÔÀ¸·Î È£ÃâµÇ¸é, ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. function expectsMyClass(MyClass $obj) {

}

  


15. ¸Þ¼Òµå¿¡¼­ ¸®ÅϵǴ ¿ªÂüÁ¶(defrferencing)¸¦ Áö¿øÇÑ´Ù.

PHP 4, ¿©·¯ºÐÀº ¸Þ¼Òµå·ÎºÎÅÍ ¹ÝȯµÇ´Â °´Ã¼¸¦ ¹ÝÂüÁ¶ÇÒ¼ö ¾ø¾ú´Ù. ¿©·¯ºÐÀº ´õ¹Ì(dummy º¯¼ö¿¡ ù °´Ã¼¸¦ ÇÒ´çÇؾßÇÏ°í, ±×°ÍÀ» ¿ªÂüÁ¶ ÇÑ´Ù. PHP 4:

$dummy = $obj->method();
$dummy->method2();

PHP 5:

$obj->method()->method2();

  


16. ¹Ýº¹ÀÚ(Iterators)

php5´Â php Ŭ·¡½º¿Í php È®Àå Ŭ·¡½º µÑ ´Ù ¹Ýº¹ÀÚ ÀÎÅÍÆäÀ̽ºÀ» ±¸ÇöÇÏ°Ô ÇØÁØ´Ù. ¿©·¯ºÐÀº ¿©·¯ºÐÀÌ foreach() ¾ð¾î »ý¼ºÀÚ¸¦ »ç¿ëÀ¸·Î Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ¹Ýº¹ÇÒ¼ö ÀÖÀ» ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ´Ù. $obj = new MyIteratorImplementation();
foreach ($obj as $value) {
    print "$value";
}

function __autoload($class_name) {
    include_once($class_name . "php");
}

$obj  = new MyClass1();
$obj2 = new MyClass2();

  


ÀÌ»ó »õ·Ó°Ô °­È­µÈ °´Ã¼Áö¿ø¿¡ °üÇØ ³ª¿­Çߴµ¥, ½±°Ô ¾Ö±âÇϸé, ÀÚ¹Ù¸¸Å­ °´Ã¼¸¦ Áö¿øÇÑ´Ù. ´ë·« ÀÌ·± ¾Ö±âÀÔ´Ï´Ù.


´Ù¸¥ »õ·Î¿î ¾ð¾î Ư¡
1. ¿¹¿Ü Çڵ鸵
PHP 5¿¡¼­ Àß ¾Ë°íÀÖ´Â try/throw/catch/ ±¸Á¶Àû ¿¹¿Ü ó¸® °³³äÀ» Ãß°¡Çß´Ù. ¿©·¯ºÐÀº Exception Ŭ·¡½º¿¡¼­ »ó¼ÓÇÑ °´Ã¼¸¦ ´øÁö°Ô(throw) ¸¸µé ¼ö ÀÖ´Ù. (ÀÚ¹Ù ½á º¸½Å ºÐÀº ´ë´ÜÈ÷ ¹Ý°¡¿ö ÇÒ ³»¿ëÀÔ´Ï´Ù. ÀÌÁ¦ if¹®À» ÁÙÀÌÀÚ!) class SQLException extends Exception {
    public $problem;
    function __construct($problem) {
        $this->problem = $problem;
    }
}

try {
    ...
    throw new SQLException("Couldn¡¯t connect to database");
    ...
} catch (SQLException $e) {
    print "Caught an SQLException with problem $obj->problem";
} catch (Exception $e) {
    print "Caught unrecognized exception";
}

  


ÇöÀç, ÀÌÀü¹öÀü°ú ȣȯ¼º ¸ñÀûÀ» À§ÇØ, ´ëºÎºÐÀÇ ³»ºÎ ÇÔ¼ö´Â ¿¹¿Ü·Î ´øÁú ¼ö ¾ø´Ù. ÀÌ¹Ì Á¸ÀçÇÏ´Â set_error_handler()°ú ºñ½ÁÇÏ°Ô, ¿©·¯ºÐÀº ½ºÅ©¸³Æ® Á¾·áÀü¿¡ ó¸®ÇÒ ¼ö ¾ø´Â ¿¹¿Ü¸¦ Àâ±âÀ§ÇØ set_exception_handler()¸¦ »ç¿ëÇÑ´Ù.

2. ÂüÁ¶¸¦ ÀÌ¿ëÇÑ foreach

php4¿¡¼­ ¿©·¯ºÐÀº ±× ¹è¿­À» ÅëÇØ ¹Ýº¹Çϰųª ±× º¯¼ö¸¦ ¼öÁ¤ÇÒ¼ö ¾ø¾ú´Ù. Php5´Â ¡®&¡¯(reperence) Ç¥½Ã·Î foreach() ¹Ýº¹¹®À» Ç¥½ÃÇÔÀ¸·Î¼­ Áö¿øÇÑ´Ù. foreach ($array as &$value) {
    if ($value === "NULL") {
        $value = NULL;
    }
}

  


3. ÂüÁ¶ ÀÎÀÚ¸¦ À§ÇÑ µðÆúÆ® º¯¼ö

php4¿¡¼­ µðÆúÆ® º¯¼ö´Â º¯¼ö·Î ³Ñ°ÜÁö´Â ÆĶó¹ÌÅ͸¸ ÁÖ¾îÁ³´Ù. ÂüÁ¶ ÆĶó¹ÌÅÍ·Î ³ÑÁö°ÜÁö´Â µðÆúÆ® º¯¼ö¸¦ ÁÖ´Â °ÍÀº Áö±Ý Áö¿øµÈ´Ù. function my_func(&$arg = null) {
    if ($arg === NULL) {
        print '$arg is empty';
    }
}
my_func();

  



3.ÀϹÝÀûÀÎ PHP º¯È­
XML°ú À¥ ¼­ºñ½º
¾ð¾î¿¡¼­ ´ÙÀ½°ú °°Àº º¯È­·Î´Â, php5¿¡¼­ XML ¾÷µ¥ÀÌÆ®´Â ¾Æ¸¶µµ Áß¿äÇÏ°í ¸ÚÁø°ÍÀÌ´Ù. Php5¿¡¼­, °­È­µÈ XML ±â´ÉÀº ´Ù¸¥ ¾ð¾î¿Í ºñ±³Çؼ­ µ¿µîÇϰųª µû¶óÀâ¾Ò´Ù.
±â¹Ý
php4¿¡¼­ xmlÁö¿øÀº ´Ù¾çÇÑ ¹ÙÅÁ XML ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© ±¸ÇöµÇ¾ú´Ù. SAX Áö¿øÀº ¿À·¡µÈ Expat ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© ±¸Çö µÇ¾ú°í, XSLT´Â Sablotron ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© ±¸ÇöµÇ¾ú°í, DOMÀº ±×³ð(GNOME) ÇÁ·ÎÁ§Æ®¿¡ ÀÇÇØ º¸´Ù °­·ÂÇÑ libxml2 ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© ±¸ÇöµÇ¾ú´Ù. ´Ù¾çÇÑ ¶óÀ̺귯¸®ÀÇ »ç¿ëÀº ±×°ÍÀÌ xml Áö¿øÇÒ¶§ php4¸¦ ¶Ù¾î³ª°Ô ¸¸µéÁö ¸øÇß´Ù. °ü¸®°¡ ¾î¼³Æâ´Ù(poor). »õ·Î¿î XML Ç¥ÁØÀº Ç×»ó Áö¿øµÇÁö ¾Ê¾Ò°í, ¼º´ÉÀº ±×°ÍÀ» °¡Á³À» ¶§ ¸¸Å­ ÁÁÁø ¾Ê¾Ò°í, ´Ù¾çÇÑ XML È®Àå »çÀÌ¿¡ »óÈ£¿î¿µ¼ºÀº Á¸ÀçÇÏÁö ¾Ê¾Ò´Ù.

Php 5¿¡¼­ ¸ðµç XML È®ÀåÀº suberb libxml2 XML toolkit(http://www.xmlsoft.org)À» »ç¿ëÇÏ¿© ÀçÀÛ¼ºµÇ¾ú´Ù. ±×°ÍÀº °ü¸®Çϱâ ÁÁ°í XML ±â¼úÀ» php·Î °¡Á®¿À´Â XML Ç¥ÁØÀÇ È¿°úÀûÀÎ ±¸ÇöÇÏ´Â ¸Å¿ì ´Ù¾çÇÑ Æ¯Â¡ÀÌ ÀÖ´Ù.
ÀÌ»ó ¾ð±ÞÇÑ È®Àå(SAX, DOM ±×¸®°í XSMT)´Â Áö±Ý »õ·Î¿î Ãß°¡ È®Àå SimpleXML°ú SOAPÀ» Æ÷ÇÔÇÏ´Â libxml2¸¦ »ç¿ëÇÑ´Ù.


SimpleXML
¾Æ¸¶µµ 1-2³â ÀüÀ¸·Î µÚµ¹¾Æ º¸¸é, SimpleXMLÀÌ XML ÆÄÀÏ·Î ÀÛ¾÷ÇÏ´Â php °³¹ßÀÚ¿¡°Ô Çõ¸íÀÓÀÌ ¸íÈ®ÇÏ´Ù. SimpleXMLÀº Á¤¸» ¹Ùº¸(dummies)¸¦ À§ÇÑ XML·Î ºÒ·ÁÁ³´Ù. DOM°ú SAX·Î ó¸®ÇÏ´Â ´ë½Å¿¡, SimpleXMLÀº PHP °´Ã¼·Î¼­ XML ÆÄÀÏÀ» º¸¿©ÁØ´Ù. ¿©·¯ºÐÀº ½±°Ô Á¢±ÙÇÏ´Â ¿ä¼Ò(elements)¿Í ¼Ó¼º(attributes)¸¦ Àаí ÀÛ¼ºÇϰųª ¹Ýº¹ÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½ XML ÆÄÀÏÀ» º¸ÀÚ

<clients>
<client>
    <name>John Doe</name>
    <account_number>87234838</account_number>
</client>
<client>
    <name>Janet Smith</name>
    <account_number>72384329</account_number>
</client>
</clients>

  


´ÙÀ½ÀÇ ÄÚµå´Â Ŭ¶óÀ̾ðÆ® À̸§°ú °èÁ¹øÈ£¸¦ Ãâ·ÂÇÑ´Ù.

$clients = simplexml_load_file('clients.xml');
foreach ($clients->client as $client) {
    print "$client->name has account number $client->account_number ";
}
SimpleXMLÀÌ ¾ó¸¶³ª °£°áÇÑÁö ¸í¹éÇÏ´Ù.
SOAP
Php4ÀÇ °ø½ÄÀûÀÎ SOAPÁö¿øÀº ºÎÁ·Çß¾ú´Ù. ´ëºÎºÐ ÀϹÝÀûÀÌ·Î »ç¿ëµÇ´Â SOAP ±¸ÇöÀº PEARÀÌ´Ù ±×·¯³ª ±×°ÍÀº php¿¡¼­ ÀüüÀûÀ¸·Î ±¸ÇöµÇ¾úÀ¸³ª, C È®Àå°ú ¸¶Âù°¡Áö·Î ¼öÇàÇÒ ¼ö ¾ø¾ú´Ù. ´Ù¸¥ ÀÌ¿ë °¡´ÉÇÑ C È®ÀåÀº ¾ÈÁ¤ÀûÀÌÁöµµ ³Î¸® äÅõÇÁöµµ ¾Ê¾Ò´Ù. ±×·¯¹Ç·Î php 5 ¹èÆ÷ÆÇ¿¡ Æ÷ÇÔµÇÁö ¾Ê¾Ò´Ù.
Php5¿¡¼­ SOAP Áö¿øÀº C È®ÀåÀ¸·Î¼­ ¿Ïº®ÇÏ°Ô ÀçÀÛ¼ºµÇ¾ú°í, ºñ·Ï ±×°ÍÀÌ ´ÊÀº ´Ü°è¿¡ ¿Ï¼ºµÇ¾úÁö¸¸, ±×°ÍÀº Ç¥ÁØÀÇ ´ëºÎºÐÀÇ ±¸Çö ¶§¹®¿¡, µðÆúÆ® ¹èÆ÷ÆÇ¿¡ Çù·ÂµÈ´Ù.

´ÙÀ½Àº WSDL ÆÄÀÏ¿¡¼­ Á¤ÀÇ µÈ SomeFuncion()À» È£ÃâÇÑ´Ù


$client = new SoapClient("some.wsdl");
$client->SomeFunction($a, $b, $c);
New MySQLi(MySQL Improved) È®Àå
Php5¸¦ À§ÇØ, MySQL AB (http://www.mysql.com)Àº MySQL 4.1°ú ±× ÀÌ»ó¹öÀü¿¡¼­, »õ·Î¿î ±â´ÉÀÇ Æ÷µç ÀåÁ¡À» ÃëÇÏ´Â »õ·Î¿î MySQL È®ÀåÀ» ÀÛ¼ºÇß´Ù. ±¸Çü MySQL È®Àå¿¡ ¹ÝÇÏ¿©, »õ·Î¿î °ÍÀº ¿©·¯ºÐ¿¡°Ô ÇÔ¼öÇü, °´Ã¼ÁöÇâ ÀÎÅÍÆäÀ̽º µÑ´Ù »ç¿ëÇÒ ¼ö ÀÖ°í, ±×·¡¼­ ¿©·¯ºÐÀº ¿©·¯ºÐÀÌ ÁÁ¾ÆÇÏ´Â °ÍÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ÀÌ È®ÀåÀ¸·Î Áö¿øµÇ´Â »õ·Î¿î Ư¡Àº ´ÙÀ½°ú °°´Ù.
¹Ì¸® ÁغñµÈ ¹®Àå(Prepared statements), °¡º¯ °á¼Ó(variable binding), SSL°ú ¾ÐÃàµÈ Ä¿³Ø¼Ç, Æ®·£Á§¼Ç Á¦¾î, º¹Á¦(replication)¡¦

SQLite È®Àå
SQLite(http://www.sqlite.org)ÀÇ Áö¿øÀº php 4.3.x¿¡¼­ óÀ½ µµÀԵǾú´Ù. ±×°ÍÀº SQL ¼­¹ö¸¦ ¿ä±¸ÇÏÁö ¾Ê´Â ³»ÀåÇü SQL ¶óÀ̺귯¸®ÀÌ°í SQL ¼­¹öÀÇ ±Ô¸ð¸¦ ¿ä±¸ÇÏÁö ¾Ê´Â ¾îÇø®ÄÉÀ̼ǿ¡ ¸Å¿ì ÀûÇÕÇÏ´Ù. ¶Ç´Â ¸¸¾à ¿©·¯ºÐÀÌ ISP¿¡¼­ SQL ¼­¹ö¿¡ Á¢±ÙÇÒ ¼ö ¾ø´Â °æ¿ì¿¡µµ ÀûÇÕÇÏ´Ù. SQLite¶ó´Â À̸§°ú´Â ´Ù¸£°Ô ±×°ÍÀº ¸Å¿ì ´Ù¾çÇÑ Æ¯Â¡°ú Æ®·£Á§¼Ç, sub-select, view ±×¸®°í ´ë±Ô¸ð DB fileÀ» Áö¿øÇÑ´Ù. ±×°ÍÀº php 5¹öÀüÀ¸·Î¼­ ¾ð±ÞµÇ¾ú´Ù.
¿Ö³ÄÇÏ¸é ±×°ÍÀº php4ÀÇ µÚ´Ê°Ô µµÀԵǾú°í, °´Ã¼ÁöÇâ ÀÎÅÍÆäÀ̽º¿Í ¹Ýº¹ÀÚ¸¦ Áö¿øÀ» Á¦°øµÇ¸é¼­ php 5ÀÇ ÀåÁ¡À» ÃëÇ߱⠶§¹®ÀÌ´Ù.

Tidy È®Àå
Php 5´Â À¯¿ëÇÑ Tidy (http://tidy.sf.net/) ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇÑ´Ù ±×°ÍÀº php °³¹ßÀÚ°¡ HTML ¹®¼­¸¦ ±¸¹®ºÐ¼®, ºÐ·ù, û¼Ò, º¹±¸Çϵµ·Ï µµ¿ÍÁØ´Ù. Tidy È®ÀåÀº ÇÔ¼ö, °´Ã¼ÁöÇâ ÀÎÅÍÆäÀ̽º¸¦ Áö¿øÇÏ°í ±×°ÍÀÇ API´Â php 5 ¿¹¿Ü ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÑ´Ù.
ÆÞ È®Àå
±âº» php5 ÆÐÅ°Áö¿¡¼­ Æ÷ÇÔµÇÁö´Â ¾ÊÁö¸¸, ÆÞ È®ÀåÀº ¿©·¯ºÐÀÌ ÆÞ ½ºÅ©¸³Æ®¸¦ È£ÃâÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. ÆÞ °´Ã¼¸¦ »ç¿ëÇÏ°í ´Ù¸¥ ÆÞ ±â´ÉÀ» php¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ·± »õ·Î¿î È®ÀåÀº PECL (PHP Extension Community Library) ÀúÀå¼Ò(repository) http://pecl.php.net/package/perl ¿¡ ÀÖ´Ù. (php°¡ ÆÞ°´Ã¼¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù°í ÇÕ´Ï´Ù)
Php5¿¡¼­ ´Ù¸¥ »õ·Î¿î °Íµé
»õ·Î¿î ¸Þ¸ð¸® ¸Þ´ÏÀú
Á¨µå ¿£ÁøÀº »õ·Î¿î ¸Þ¸ð¸® °ü¸®ÀÚ¸¦ °¡Áö°í ÀÖ´Ù. µÎ ÁÖ¿ä ÀåÁ¡Àº ¸ÖƼ ¾²·¹µå ȯ°æÀ» À§ÇÑ Áö¿ø°ú °¢ ¿äû ÈÄ¿¡ ÇÒ´çµÈ ¸Þ¸ð¸® ºí·ÏÀº º¸´Ù È¿À²ÀûÀÌ´Ù.
À©µµ¿ì 95 Áö¿øÀÇ Ãë¼Ò
À©µµ¿ì 95 Ç÷§Æû»ó¿¡ ¿î¿µµÇ´Â php´Â ´õ ÀÌ»ó Áö¿øµÇÁö ¾Ê´Â´Ù. ¿Ö³ÄÇϸé MS»ç°¡ À©µµ¿ì 95¸¦ °ø½ÄÀûÀ¸·Î Áö¿øÇÏÁö ¾ÊÀ» °Å¶ó°í Çß±â 떄¹®¿¡, php °³¹ß °øµ¿Ã¼µµ ±×·¸°Ô Çϱâ·Î °áÁ¤Çß´Ù.
ÃßõÃßõ : 545 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
2,885
input ÀÔ·Â ÇÊµå ¾ÕµÚ °ø¹é ½Ç½Ã°£ Á¦°Å
2,884
Placeholder Æ÷Ä¿½º½Ã °¨Ãß±â
2,883
MySQL Áߺ¹µÈ µ¥ÀÌÅ͸¦ »èÁ¦
2,882
MySQL Áߺ¹ µ¥ÀÌÅÍ È®ÀÎ
2,881
sessionStorage.getItem ¿Í sessionStorage.setItem
2,880
Á¦ÀÌÄõ¸® ·£´ýÀ¸·Î ¹è°æ»ö º¯°æ
2,879
preg match¿¡ °üÇÑ Á¤±Ô½Ä
2,878
Stream an audio file with MediaPlayer ¿Àµð¿À ÆÄÀÏ ½ºÆ®¸®¹Ö Çϱâ
2,877
Audio Streaming PHP Code
2,876
PHP $ SERVER ȯ°æ º¯¼ö Á¤¸®
2,875
Vimeo (ºñ¸Þ¿À) API ¸¦ »ç¿ëÇÏ¿© Ç÷¹À̾î ÄÁÆ®·ÑÇϱâ
2,874
iframe »ç¿ë½Ã ÇÏ´Ü¿¡ ¹ß»ýÇÏ´Â °ø¹é Á¦°Å¹æ¹ý
2,873
¾ÆÀÌÇÁ·¹ÀÓ(iframe) Àüüȭ¸é °¡´ÉÇÏ°Ô Çϱâ
2,872
ºÎÆ®½ºÆ®·¦(bootstrapk)¿¡¼­ »ç¿ëÇÏ´Â class¸í Á¤¸®
2,871
ºÎÆ®½ºÆ®·¦ CSS
2,870
Å©·Ò¿¡¼­ ¸¶Áø Á¶Àý
2,869
PHP ÇöÀç ÆäÀÌÁöÀÇ µµ¸ÞÀθíÀ̳ª urlµîÀÇ Á¤º¸ ¾Ë¾Æ¿À±â
2,868
PHP preg match all()
2,867
PHP ·Î À¥ÆäÀÌÁö ±Ü¾î¿À±â ¸ðµç ¹æ¹ý ÃÑÁ¤¸®!
2,866
[PHP] ¿ø°ÝÁö ÆÄÀÏ ÁÖ¼Ò ³ëÃâ ¾ÈÇÏ°í curl·Î ´Ù¿î·Îµå ¹Þ±â
2,865
PHP ÇÔ¼ö Á¤¸®
2,864
¾ÆÀÌÇÁ·¹ÀÓ(iframe) ºñÀ² À¯ÁöÇϸ鼭 Å©±â Á¶ÀýÇÏ´Â ¹æ¹ý
2,863
PHP ¹è¿­¿¡¼­ ¹«ÀÛÀ§·Î Çϳª »Ì¾ÆÁÖ´Â array rand() ÇÔ¼ö
2,862
PHP Á¤±Ô½Ä Á¤¸®
2,861
PHP Á¤±Ô½ÄÀ» È°¿ëÇÑ ÅÂ±× ¹× ƯÁ¤ ¹®ÀÚ¿­ Á¦°Å ¹× ÃßÃâ ¹æ¹ý
2,860
php Å©·Ñ¸µ ¶Ç´Â ÆÄ½Ì ÇÔ¼ö, Á¤±Ô½Ä ¸ðÀ½
2,859
Á¦ÀÌÄõ¸® ±âº» ¸í·É¾î
2,858
À¥ÆäÀÌÁö °¡·Î ¸ðµå¼¼·Î ¸ðµå ÀνÄÇϱâ
2,857
¸ð¹ÙÀÏ À¥ È­¸é °­Á¦ ȸÀü(°¡·Î¸ðµå °íÁ¤)
2,856
[HTML5]¿¡¼­ frameset ´ëü ¹æ¹ý°ú iframe ¼Ó¼º
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.