[ broker @ 30.03.2004. 14:16 ] @
| Hocu da koristim niz kao properti u klasi. Izgleda da tu nesto ne stima.
Evo primera:
Code:
<?php
class testclass {
var $testarray = array();
function testclass() {
for ($counter = 65; $counter < 75; $counter++) {
$this->$testarray[$counter] = chr ($counter);
}
}
}
$testvar = new testclass();
print_r ($testvar->$testarray);
?>
Kada se ovo zavrsi $testvar->$testarray sadrzi smo jedan slog sa indeksom 75 koji sadrzi vrednost 'J'.
Po nekoj logici, trebalo bi da niz sadrzi vise slogova, pocev od indeksa 65 pa do 75 i da svaki sadrzi znak koji se dobija sa chr ().
Ako ovaj primer izmenim tako da umesto propertija korsitim globalnu promenljivu onda stvar radi kako ocekujem.
Code:
<?php
class testclass {
function testclass() {
global $testarray;
for ($counter = 65; $counter < 75; $counter++) {
$testarray[$counter] = chr ($counter);
}
}
}
$testvar = new testclass();
print_r ($testarray);
?>
|
[ -zombie- @ 30.03.2004. 14:26 ] @
khm, probaj $this->testarray..
[ noviKorisnik @ 30.03.2004. 14:34 ] @
Što reče -zombie-:
$this->testarray[$counter] = chr ($counter); umesto
$this->$testarray[$counter] = chr ($counter);
i
print_r ($testvar->testarray); umesto
print_r ($testvar->$testarray);
[ broker @ 30.03.2004. 14:51 ] @
Boze svasta... jednom me je vec urnisalo ovo sa $ ili bez $ pa sam zakljucio da treba $, a sad opet ispade da ne treba, jer, zaista, kada sam izbacio $ radi...
Lepo ja rekoh... 'bem ti programski jezik u kome se ne deklarisu promenljive... :(
Fala momci, oci pogubih na ovome, a jos klasa prilicno komplikovana...
[ Ilija Studen @ 30.03.2004. 17:09 ] @
Radilo bi da je ovako:
Code:
function doSomething() {
$classVar = 'testArray';
for($i = 0; $i < 75; $i++) {
$this->$classVar[$i] = md5($i);
}
print_r($this->$classVar);
}
naravno, ako imas promenljivu definisanu sa var $testArray :)
Inace, ovaj metod je jako zgodan kada ne znas imena promenljivih u klasi, vec ih dobijas sa get_class_vars().
[ leka @ 31.03.2004. 13:01 ] @
Da, i ja ponekad gresim sa $this->$nesto ... Uglavnom zato sto u 90% slucajeva ovde u firmi radim sa jezicima koji imaju normalne nazive za promenljive (bez '$'). :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.