/** * test array var */ function testArrayVars() { // make an eptTest object $this->assertTrue($o = new eptTest("XXX", "YYY", "ZZZ")); // wrap it with epObject $this->assertTrue($w = new epObject($o)); $w->epSetDirty(false); $this->assertTrue($w->a = array("1" => "111", "2" => "222", "3" => "333")); $this->assertTrue($w->epIsDirty()); // check values $this->assertTrue(count($w->a) == 3); $this->assertTrue($w->a['1'] == "111"); $this->assertTrue($w->a['2'] == "222"); $this->assertTrue($w->a['3'] == "333"); // !!!note that the following does not work!!! // $w->a['4'] == "444"; // a way of inserting new items into an array var $this->assertTrue($a = $w->a); $this->assertTrue(count($a) == 3); $this->assertTrue($a['1'] == "111"); $this->assertTrue($a['2'] == "222"); $this->assertTrue($a['3'] == "333"); // now insert a new item $this->assertTrue($a['4'] = "444"); // reassign the whole array back $w->epSetDirty(false); $this->assertTrue($w->a = $a); $this->assertTrue($w->epIsDirty()); // check items $this->assertTrue($w->a['1'] == "111"); $this->assertTrue($w->a['2'] == "222"); $this->assertTrue($w->a['3'] == "333"); // check new item ['4'] $this->assertTrue($w->a['4'] == "444"); }
/** * Remove all items * @return void * @access public */ public function removeAll() { if ($this->array) { // notify on pre change if ($this->o && !$this->clean) { $this->_notifyChange('onPreChange'); } // go through each object foreach ($this as $k => $v) { // update inverse $this->_updateInverse($v, self::UPDATE_INVERSE_REMOVE); } // remove everything in array $this->array = array(); // notify the associated object that array has changed if ($this->o && !$this->clean) { $this->o->epSetDirty(true); $this->_notifyChange('onPostChange'); } } }