Re: interface problem in PHP5
| From: | Erik Franzén | Date: | Sat, 04 Sep 2004 22:01:27 +0000 |
| Subject: | Re: interface problem in PHP5 | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-195877@lists.php.net to get a copy of this message | ||
If you want to delete an object, when you have other references to it, you must use the & operator, otherwise the object will not be killed for all references.
I tested without the &-operator, but that did not work
The &-operator is still important in PHP5. Look at the folling example
<?
$a = new stdclass;
$b = $a;
$c =& $a;
?>
unsetting a will only kill a, b and c will still be "alive".
setting a to null will kill c but not b
/Erik
Torsten Roehr wrote:
"Erik franzén" <erik@nordicaudi.com> wrote in message news:20040904173846.53823.qmail@pb1.pair.com...Can anuyone describe this error? Compile Error: E:\Source\CMAES\src\include\dom.inc.php line 67 - Declaration of CMAES_DOM_Node_List::item() must be compatible with that of CMAES_DOM_Node_List_Interface::item() // {{{ interface CMAES_DOM_Node_List /** * * @access public */ interface CMAES_DOM_Node_List_Interface {I think you have to also define the arguments you want to use for item() in your interface:function item();function item($a_iIndex);Are you sure you need '&' here? Shouldn't PHP5 pass all variables by reference on default? Regards, Torsten Roehrfunction search(); function addItem(); function removeItem();} // }}} /** * CMAES_DOM_Node * */ class CMAES_DOM_Node_List implements CMAES_DOM_Node_List_Interface {// {{{ properties /** * Number of elements in node list * @var integer */ public $iLength = 0;/** * Nodes in list * @var array */ private $_aNodes = array(); // }}}// {{{ item /** * Returns the nth index given in item. * * @param inte $a_iIndex - index in list * @return mixed node object or null if item was not found * @access public */ function &item($a_iIndex)