<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: Nowel's Code Snippets</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 25 Jul 2008 02:15:22 GMT</pubDate>
    <description>DZone Snippets: Nowel's Code Snippets</description>
    <item>
      <title>Associate array to XML and JSON</title>
      <link>http://snippets.dzone.com/posts/show/3391</link>
      <description>PHP Associate array data&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$data = array(&lt;br /&gt;    "hoge" =&gt; 123,&lt;br /&gt;    "foo" =&gt; 456,&lt;br /&gt;    "bar" =&gt; 789,&lt;br /&gt;    "aaa" =&gt; array(&lt;br /&gt;        "abc" =&gt; 111,&lt;br /&gt;        "bcd" =&gt; 222,&lt;br /&gt;        "cde" =&gt; 333&lt;br /&gt;    ),&lt;br /&gt;    "bbb" =&gt; array(&lt;br /&gt;        "def" =&gt; array(&lt;br /&gt;            "efg" =&gt; "hoge"&lt;br /&gt;        )&lt;br /&gt;    )&lt;br /&gt;);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;to XML&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$xml = new XmlWriter();&lt;br /&gt;$xml-&gt;openMemory();&lt;br /&gt;$xml-&gt;startDocument('1.0', 'UTF-8');&lt;br /&gt;$xml-&gt;startElement('root');&lt;br /&gt;&lt;br /&gt;function write(XMLWriter $xml, $data){&lt;br /&gt;    foreach($data as $key =&gt; $value){&lt;br /&gt;        if(is_array($value)){&lt;br /&gt;            $xml-&gt;startElement($key);&lt;br /&gt;            write($xml, $value);&lt;br /&gt;            $xml-&gt;endElement();&lt;br /&gt;            continue;&lt;br /&gt;        }&lt;br /&gt;        $xml-&gt;writeElement($key, $value);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;write($xml, $data);&lt;br /&gt;&lt;br /&gt;$xml-&gt;endElement();&lt;br /&gt;echo $xml-&gt;outputMemory(true);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;output XML&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;br /&gt;&lt;root&gt;&lt;br /&gt;    &lt;hoge&gt;123&lt;/hoge&gt;&lt;br /&gt;    &lt;foo&gt;456&lt;/foo&gt;&lt;br /&gt;    &lt;bar&gt;789&lt;/bar&gt;&lt;br /&gt;    &lt;aaa&gt;&lt;br /&gt;        &lt;abc&gt;111&lt;/abc&gt;&lt;br /&gt;        &lt;bcd&gt;222&lt;/bcd&gt;&lt;br /&gt;        &lt;cde&gt;333&lt;/cde&gt;&lt;br /&gt;    &lt;/aaa&gt;&lt;br /&gt;    &lt;bbb&gt;&lt;br /&gt;        &lt;def&gt;&lt;br /&gt;            &lt;efg&gt;hoge&lt;/efg&gt;&lt;br /&gt;        &lt;/def&gt;&lt;br /&gt;    &lt;/bbb&gt;&lt;br /&gt;&lt;/root&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;to JSON&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;echo json_encode($data);&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;output JSON&lt;br /&gt;&lt;code&gt;&lt;br /&gt;{&lt;br /&gt;    "hoge":123,&lt;br /&gt;    "foo":456,&lt;br /&gt;    "bar":789,&lt;br /&gt;    "aaa":{&lt;br /&gt;        "abc":111,&lt;br /&gt;        "bcd":222,&lt;br /&gt;        "cde":333&lt;br /&gt;    },&lt;br /&gt;    "bbb":{&lt;br /&gt;        "def":{&lt;br /&gt;            "efg":"hoge"&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Requires PHP5.2.x or xmlwriter extension, json extension</description>
      <pubDate>Tue, 30 Jan 2007 19:12:58 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3391</guid>
      <author>nowel (hata)</author>
    </item>
    <item>
      <title>Constructor overloading Java and PHP5</title>
      <link>http://snippets.dzone.com/posts/show/3237</link>
      <description>Java's constructor overload&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;class Hoge {&lt;br /&gt;&lt;br /&gt;    public Hoge(){&lt;br /&gt;        System.out.println("constructor 0");&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Hoge(int a){&lt;br /&gt;        System.out.println("constructor 1:" + a);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Hoge(int a, String[] hoge){&lt;br /&gt;        System.out.println("constructor 2:" + a + ":" + hoge);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public Hoge(A a, B b, C c){&lt;br /&gt;        System.out.println("constructor 3:" + a + ":" + b + ":" + c);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;PHP5 code&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;class Hoge {&lt;br /&gt;&lt;br /&gt;    public function __construct(){&lt;br /&gt;        $num = func_num_args();&lt;br /&gt;        $args = func_get_args();&lt;br /&gt;        switch($num){&lt;br /&gt;        case 0:&lt;br /&gt;            $this-&gt;__call('__construct0', null);&lt;br /&gt;            break;&lt;br /&gt;        case 1:&lt;br /&gt;            $this-&gt;__call('__construct1', $args);&lt;br /&gt;            break;&lt;br /&gt;        case 2:&lt;br /&gt;            $this-&gt;__call('__construct2', $args);&lt;br /&gt;            break;&lt;br /&gt;        case 3:&lt;br /&gt;            $this-&gt;__call('__construct3', $args);&lt;br /&gt;            break;&lt;br /&gt;        default:&lt;br /&gt;            throw new Exception();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public function __construct0(){&lt;br /&gt;        echo "constructor 0" . PHP_EOL;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public function __construct1($a){&lt;br /&gt;        echo "constructor 1: " . $a . PHP_EOL;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public function __construct2($a, array $hoge){&lt;br /&gt;        echo "constructor 2: " . $a . PHP_EOL;&lt;br /&gt;        var_dump($hoge);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public function __construct3(A $a, A $b, C $c){&lt;br /&gt;        echo "constructor 3: " . PHP_EOL;&lt;br /&gt;        var_dump($a, $b, $c);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    private function __call($name, $arg){&lt;br /&gt;        return call_user_func_array(array($this, $name), $arg);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;example(PHP5)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;interface C {&lt;br /&gt;    const C = __CLASS__;&lt;br /&gt;}&lt;br /&gt;class A {&lt;br /&gt;    const A = __CLASS__;&lt;br /&gt;    private $a = array(1, 2, 3);&lt;br /&gt;}&lt;br /&gt;class B extends A{&lt;br /&gt;    const B = __CLASS__;&lt;br /&gt;    private $b = array(1, 2, 3);&lt;br /&gt;}&lt;br /&gt;class D extends B implements C {&lt;br /&gt;    const D = __CLASS__;&lt;br /&gt;    private $c = array(1, 2, 3);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;$a = new Hoge();&lt;br /&gt;$b = new Hoge(1);&lt;br /&gt;$c = new Hoge(777, array(1,2,3));&lt;br /&gt;$d = new Hoge(new A(), new B(), new D());&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 04 Jan 2007 15:39:12 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3237</guid>
      <author>nowel (hata)</author>
    </item>
  </channel>
</rss>
