Dictionary Klasse + Unit test

  • Hallo meine Lieben,


    ich habe mal eine Klasse Dictionary + Unit test dazu geschrieben. Schaut mal ob ihr damit etwas anfangen könnt.
    Fragen, Kritik oder Anregungen könnt ihr hier posten oder mir mittels PN zuschicken.
    SimpleTest gibt es hier: http://simpletest.org/


    Object.php

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br />class Object<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/**<br />     * @access public<br />     */</span><span class="syntaxdefault"> <br />    var $tag</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/**<br />     * @access protected<br />     */</span><span class="syntaxdefault"> <br />    <br />    protected $properties </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * @access public<br />     * @return string Returns all the class properties as a string<br />     */</span><span class="syntaxdefault"> <br />    public function __toString</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $retval </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        <br />        foreach</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties as $key </span><span class="syntaxkeyword">=></span><span class="syntaxdefault">$value</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $retval </span><span class="syntaxkeyword">.=</span><span class="syntaxdefault"> $key </span><span class="syntaxkeyword">.</span><span class="syntaxstring">": "</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$value </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">"<br>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        return $retval</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/**<br />    * @access public<br />     * @param mixed $var_name<br />     */</span><span class="syntaxdefault"> <br />    public function __get</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(!isset(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">]))<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            throw new Exception</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Property $var_name does not exist"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * @access public<br />     * @param mixed $var_name<br />     * @param mixed $value<br />     */</span><span class="syntaxdefault"> <br />    public function __set</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(!isset(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">]))<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            throw new Exception</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Property $var_name does not exist"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /><br /></span><span class="syntaxdefault">?><br /></span></span>


    Dictionary.php

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br /></span><span class="syntaxkeyword">require_once(</span><span class="syntaxstring">"Object.php"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">class Dictionary extends Object <br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/**<br />     * Returns all the keys in an array<br />     * <br />     * @access public<br />     * <br />     * @return array Array containing all keys <br />     */<br /></span><span class="syntaxdefault">    function keys</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $retval </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        <br />        foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties as $key </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $retval</span><span class="syntaxkeyword">[]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $key</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        return $retval</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/**<br />     * Returns all the values in an array<br />     * <br />     * @access public<br />     * <br />     * @return array Array containing all values <br />     */<br /></span><span class="syntaxdefault">    <br />    function values</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $retval </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        <br />        foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties as $key </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $retval</span><span class="syntaxkeyword">[]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        return $retval</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/**<br />     * Checks if the Dictionary is empty<br />     * <br />     * @access public<br />     * <br />     * @return boolean Returns true if empty, otherwise false <br />     */<br /><br /></span><span class="syntaxdefault">    function isEmpty</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Returns the number of entries in the Dictionary<br />     * <br />     * @access public<br />     * <br />     * @return @integer <br />     */<br /></span><span class="syntaxdefault">    function size</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Removes all entries<br />     *<br />     * @access public <br />     */<br /></span><span class="syntaxdefault">    function clear</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        <br />        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Adds a key / value pair to the Dictionary, existing keys will be overwritten<br />     * <br />     * @param mixed $key<br />     * @param mixed $val<br />     * <br />     */<br /></span><span class="syntaxdefault">    function add</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $val</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $val</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Removes a key / value pair to the Dictionary,If the key does not exist an Exception will be thrown.<br />     * <br />     * @param mixed $key<br />     * <br />     */<br /></span><span class="syntaxdefault">    <br />    function remove</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">contains</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">))<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            throw new Exception</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Key $key does not exist"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        unset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Checks if a key exists in the Dictionary<br />     * <br />     * @param mixed $key<br />     * <br />     * @return boolean<br />     */<br /></span><span class="syntaxdefault">    <br />    function contains</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return isset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault">    <br />    <br />    </span><span class="syntaxcomment">/**<br />     * Retrieves the value for a given key,If the key does not exist an Exception will be thrown. <br />     * <br />     * @param mixed $key<br />     * <br />     * @return mixed The value for the key.<br />     */<br /></span><span class="syntaxdefault">    <br />    function value</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">contains</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">))<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            throw new Exception</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Key $key does not exist"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault">    <br /></span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">?><br /></span></span>


    DictionaryTest.php

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br /></span><span class="syntaxkeyword">require_once(</span><span class="syntaxstring">'../../SimpleTest/autorun.php'</span><span class="syntaxkeyword">);<br />require_once(</span><span class="syntaxstring">"Dictionary.php"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">class DictionaryTest extends UnitTestCase<br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    var $dict</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">    function setUp</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new Dictionary</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    function testConstructor</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">size</span><span class="syntaxkeyword">(),</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">isEmpty</span><span class="syntaxkeyword">(),</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault">    <br />    function testClear</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Potsdam"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">size</span><span class="syntaxkeyword">(),</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">clear</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">size</span><span class="syntaxkeyword">(),</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">    <br />    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    function testRemove</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Potsdam"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">remove</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">size</span><span class="syntaxkeyword">(),</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">isEmpty</span><span class="syntaxkeyword">(),</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">        <br />    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    function testContains</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Potsdam"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">contains</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> true</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">        <br />    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    function testValue</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Potsdam"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">value</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">),</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Potsdam"</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">        <br />    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    function testValues</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $values </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Potsdam"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Anna"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    <br />        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Potsdam"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Name"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Anna"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">values</span><span class="syntaxkeyword">(),</span><span class="syntaxdefault"> $values</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">        <br />    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    function testKeys</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $keys </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Name"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    <br />        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Stadt"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Potsdam"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Name"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Anna"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">assertEqual</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">keys</span><span class="syntaxkeyword">(),</span><span class="syntaxdefault"> $keys</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">        <br />    </span><span class="syntaxkeyword">}<br />}<br /><br /></span><span class="syntaxdefault">?><br /></span></span>


    LG

  • Ich hab mir simpleTest heruntergeladen, die Dateien erstellt und die DictionaryTest geöffnet und es kommt die Fehlermeldung:

    Code
    Warning: require_once(D:\xampp\htdocs\dictionary\simpletest/arguments.php) [function.require-once]: failed to open stream: No such file or directory in D:\xampp\htdocs\dictionary\simpletest\reporter.php on line 13
    
    
    
    
    Fatal error: require_once() [function.require]: Failed opening required 'D:\xampp\htdocs\dictionary\simpletest/arguments.php' (include_path='.;\xampp\php\PEAR') in D:\xampp\htdocs\dictionary\simpletest\reporter.php on line 13


    Und wirklich, die Datei arguments.php existiert im simpletest-Ordner nicht, dabei wird von einer anderen simpletest-Datei versucht sie zu laden. Es liegt also nicht an deinem Code.


    Kannst du uns vielleicht mal deine benutzbraen Dateien schicken, die wir dafür brauchen und vielleicht auch noch ein kleines Beispielscript, ich habe nämlich keine Lust mich durch den gesamten Code durchzuarbeite, um etwas lauffähiges auf die Beine zu stellen.


    Was mir aber so schon aufgefallen ist: Du benutzt in der ersten Datei noch teilweise public und protected, danach aber gar nicht mehr. Ist schöner, wenn diese keywörter vor jeder Methode / Eigenschaft stehen.

  • Hallo Sören,


    danke für Dein Feedback. Ich vermute Du hast die neueste Version. Ich habe noch die ältere und in der Datei reporter.php ist die Zeile die arguments.php includet auskommentiert. //require_once(dirname(__FILE__) . '/arguments.php');
    Ich werde mal testen ob ich den Test mit der neusten Version zum laufen bringe, vielleicht kannst Du mal probieren ob es reicht die oben erwähnte Zeile rauszunehmen.


    Zitat

    Was mir aber so schon aufgefallen ist: Du benutzt in der ersten Datei noch teilweise public und protected, danach aber gar nicht mehr. Ist schöner, wenn diese keywörter vor jeder Methode / Eigenschaft stehen.


    Hast recht, ich werde es machen.


    Hier ist ein Beispiel wie man die Klasse nutzen kann.

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br /></span><span class="syntaxkeyword">require_once(</span><span class="syntaxstring">"Dictionary.php"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">$dict </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new Dictionary</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxcomment">// Elemente hinzuzufügen <br /><br /></span><span class="syntaxdefault">$dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"first_name"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Lisa"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"last_name"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Schmitt"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">$dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"email"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"blabla@xyz.de"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxcomment">// Ganzes Object auszugeben<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"Ganzes Object<br>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"<br>"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> $dict</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// ruft indirekt __toString() in der <br /></span><span class="syntaxdefault">                    </span><span class="syntaxcomment">// Klasse Object auf <br /><br /></span><span class="syntaxdefault">hr</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxcomment">// Anzahl Elemente ausgeben<br /><br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"Anzahl Elemente: "</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> $dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">size</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">hr</span><span class="syntaxkeyword">();<br /><br /><br /></span><span class="syntaxcomment">// Prüfen ob ein bestimmter Schlüssel existiert<br /><br /></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">$dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">contains</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"first_name"</span><span class="syntaxkeyword">))<br />{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"First name: "</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> $dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">value</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"first_name"</span><span class="syntaxkeyword">);<br />}<br /></span><span class="syntaxdefault">hr</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxcomment">// Element löschen, um Exceptions zu vermeiden erst prüfen <br />// ob der Schlüssel exitiert<br /><br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">contains</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"email"</span><span class="syntaxkeyword">))<br />{<br /></span><span class="syntaxdefault">    $dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">remove</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"email"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"Wert email gelöscht"</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault">hr</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxcomment">// Prüfen ob das Dictionary leer ist<br /><br /></span><span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">isEmpty</span><span class="syntaxkeyword">())<br />{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"Empty"</span><span class="syntaxkeyword">;<br />}<br /><br /><br /></span><span class="syntaxcomment">// Alle Schlüssel ausgeben<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"Alle Schlüssel"</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$keys </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">keys</span><span class="syntaxkeyword">();<br />foreach(</span><span class="syntaxdefault">$keys as $key</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"<br>$key"</span><span class="syntaxkeyword">;<br />}<br /></span><span class="syntaxdefault">hr</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxcomment">// Alle Schlüssel/Werte ausgeben ausgeben<br /><br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"<br>Alle Schlüssel / Werte"</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$keys </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">keys</span><span class="syntaxkeyword">();<br />foreach(</span><span class="syntaxdefault">$keys as $key</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"<br>Key: $key "</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">" Wert: "</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> $dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">value</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">);<br />}<br /><br /><br /><br /></span><span class="syntaxdefault">function hr</span><span class="syntaxkeyword">()<br />{<br /></span><span class="syntaxdefault">    echo </span><span class="syntaxstring">"<hr>\n"</span><span class="syntaxkeyword">;<br />}<br /><br /><br /></span><span class="syntaxdefault">?></span></span>
  • Ja, ich hab die neueste Version, das aukommentieren hat aber gereicht.


    Kritik hab ich keine, läuft alles so, wie es soll.


    Vielleicht kannst du noch ne Möglichkeit einbauen, mehrere Elemente in einem Array hinzuzufügen, dann muss man nicht dauernd das gleiche tippen.

  • Hallo Sören,


    Zitat

    Vielleicht kannst du noch ne Möglichkeit einbauen, mehrere Elemente in einem Array hinzuzufügen, dann muss man nicht dauernd das gleiche tippen.


    hab ich gemacht. Hier ist der neue Code.


    Dictionary.php

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br /></span><span class="syntaxkeyword">require_once(</span><span class="syntaxstring">"../Object.php"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">class Dictionary extends Object <br /></span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/**<br />     * Returns all the keys in an array<br />     * <br />     * @access public<br />     * <br />     * @return array Array containing all keys <br />     */<br /></span><span class="syntaxdefault">    public function keys</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $retval </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        <br />        foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties as $key </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $retval</span><span class="syntaxkeyword">[]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $key</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        return $retval</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/**<br />     * Returns all the values in an array<br />     * <br />     * @access public<br />     * <br />     * @return array Array containing all values <br />     */<br /></span><span class="syntaxdefault">    <br />    public function values</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $retval </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        <br />        foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties as $key </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $retval</span><span class="syntaxkeyword">[]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        return $retval</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">/**<br />     * Checks if the Dictionary is empty<br />     * <br />     * @access public<br />     * <br />     * @return boolean Returns true if empty, otherwise false <br />     */<br /><br /></span><span class="syntaxdefault">    public function isEmpty</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Returns the number of entries in the Dictionary<br />     * <br />     * @access public<br />     * <br />     * @return @integer <br />     */<br /></span><span class="syntaxdefault">    public function size</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Removes all entries<br />     *<br />     * @access public <br />     */<br /></span><span class="syntaxdefault">    public function clear</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        <br />        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> array</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Adds a key / value pair to the Dictionary, existing keys will be overwritten<br />     * <br />     * @param mixed $key<br />     * @param mixed $val<br />     * <br />     */<br /></span><span class="syntaxdefault">    public function add</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $val</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $val</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Removes a key / value pair to the Dictionary,If the key does not exist an Exception will be thrown.<br />     * <br />     * @param mixed $key<br />     * <br />     */<br /></span><span class="syntaxdefault">    <br />    public function remove</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">contains</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">))<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            throw new Exception</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Key $key does not exist"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        unset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    </span><span class="syntaxcomment">/**<br />     * Checks if a key exists in the Dictionary<br />     * <br />     * @param mixed $key<br />     * <br />     * @return boolean<br />     */<br /></span><span class="syntaxdefault">    <br />    public function contains</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return isset</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">]);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault">    <br />    <br />    </span><span class="syntaxcomment">/**<br />     * Retrieves the value for a given key,If the key does not exist an Exception will be thrown. <br />     * <br />     * @param mixed $key<br />     * <br />     * @return mixed The value for the key.<br />     */<br /></span><span class="syntaxdefault">    <br />    public function value</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">contains</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">))<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            throw new Exception</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Key $key does not exist"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">];<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />    public function addArray</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$values</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        if </span><span class="syntaxkeyword">(!</span><span class="syntaxdefault">is_array</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$values</span><span class="syntaxkeyword">))<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            throw new Exception</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Parameter $values must be an array"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        <br />        foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$values as $key </span><span class="syntaxkeyword">=></span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">properties</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$key</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}</span><span class="syntaxdefault">    <br />        <br />    public function __get</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        return $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">value</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    public function __set</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        $this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">add</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$var_name</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $value</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /><br /></span><span class="syntaxdefault">?></span></span>


    Beispiel.php

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br /></span><span class="syntaxkeyword">require_once(</span><span class="syntaxstring">"Dictionary.php"</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">$dict </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> new Dictionary</span><span class="syntaxkeyword">();<br /><br /></span><span class="syntaxcomment">// Test der Funktion addArray<br /><br /></span><span class="syntaxdefault">$db</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"host"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"localhost"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$db</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"user"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"root"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$db</span><span class="syntaxkeyword">[</span><span class="syntaxstring">"pass"</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"default"</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">$dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">addArray</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$db</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxdefault">echo $dict</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"<hr>"</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxcomment">//testen der überladenen Funktionen __set / __get<br /><br /></span><span class="syntaxdefault">$dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">class_name </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"Dictionary"</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"Class name: "</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> $dict</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">class_name</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">?><br /></span></span>

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!