Archief - PHP: return array of instances

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Linwe

Legacy Member
Hey guys,

Heb net een php4 -> php5 migratie achter de rug. De website op zich draait nog, maar heb een probleem met het opvullen van mijn arrays.
Kleine uitleg: Ik heb in de meeste van m'n klassen iets staan als: getAll...() (getAllPersons() bijvoorbeeld). Dat doet in principe niets anders dan :
* een select all op die bepaalde tabel
* voor elke rij een instantie aanmaken van de huidige klasse
* die instantie mee populeren in een array
* die array returnen

In code zag dat er dan bijvoorbeeld zo uit:
PHP:
function getAllProducts(){
	$this->dbconn->query("SELECT ID FROM product");
	$arrProducts = (array) null;
        while ($obj = $this->dbconn->fetchObject())
		array_push ($arrProducts, new Product($obj->ID));
        return $arrProducts;
}

-->> Probleem! De eerste keer dat hij door die array loopt, doet hij effectief die new Product(), maar daar blijft het dan ook bij ! :/

Mijn constructor ziet er in alle klassen als volgt uit:
PHP:
function Artikel(){
	$this->dbconn = $GLOBALS["dbconn"];
	$intArgumenten = func_num_args();
	$arrArgumenten = func_get_args();
	call_user_func_array(array(&$this, get_class($this).$intArgumenten),       $arrArgumenten);
}

Het probleem ligt hem volgens mij hier bij deze constructor. In PHP4 zorgde die "&" voor een static creatie van de nieuwe instantie, wat nu niet meer gebeurt met de overschakeling naar PHP5 (again: denk ik...)


Any help or ideas ? Redelijk dringend en vind precies zelf geen oplossing, alhoewel het een kleine change zal zijn vermoed'k.

Linwe

Legacy Member
Kleine *bump* in de hoop dat er toch iemand me zou kunnen verderhelpen ?


Had het idee om mss een singleton te maken die de arrayfuncties && dus de instance creaties voor zich moet nemen, alhoewel ik twijfel of dat hetzelfde resultaat gaat geven.

Straks eens testen...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan