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:
-->> 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:
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.
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.