Poslao: 22 Jan 2008 03:24
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
Pogledajte sta donji kod daje za rezultat
Code:
<?php
$Array = array( 'Prvi', 'Drugi', 'Treci' );
foreach( $Array as &$Pointer );
foreach( $Array as $Pointer );
print_r( $Array );
?>
Output:
Array
(
[0] => Prvi
[1] => Drugi
[2] => Drugi
)
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 22 Jan 2008 16:53
|
offline
- Blood
- Ugledni građanin
- Pridružio: 26 Jul 2003
- Poruke: 384
- Gde živiš: Beograd
|
ako pri definisanju arraya ne zadas i key i value, key se postavlja automatski, tako da
$array = array('Prvi', 'Drugi', 'Treci');
// je isto sto i
$array[] = 'Prvi';
$array[] = 'Drugi';
$array[] = 'Treci';
|
|
|
|
Poslao: 22 Jan 2008 17:20
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
Pa dobro, sta je tu problem?
Nego pogledaj output, zar ne bi trebao biti
Array
(
[0] => Prvi
[1] => Drugi
[2] => Treci
)
|
|
|
|
Poslao: 22 Jan 2008 23:19
|
offline
- umpirsky
- Počasni građanin
- Pridružio: 01 Apr 2005
- Poruke: 797
- Gde živiš: Niš
|
Da je čudno - čudno je, priznajem (ne znam samo kako ti pade na pamet da probas ovo, ako već nisi video negde).
Ali pored ovoga, zašto misliš da print_r() treba da se izvrši samo jednom? Ako uopšte misliš...
|
|
|
|
Poslao: 22 Jan 2008 23:50
|
offline
- bNasty
- Građanin
- Pridružio: 17 Mar 2004
- Poruke: 293
- Gde živiš: UK
|
Fali ti jedno unset($Pointer) nakon prve iteracije. U prvom sluchaju koristish referencu koja ostaje vazheca i NAKON iteracije.
PHP manual:
Citat:
Unless the array is referenced, foreach operates on a copy of the specified array and not the array itself. foreach has some side effects on the array pointer. Don't rely on the array pointer during or after the foreach without resetting it.
...
Reference of a $value and the last array element remain even after the foreach loop. It is recommended to destroy it by unset().
|
|
|
|
Poslao: 22 Jan 2008 23:52
|
offline
- Blood
- Ugledni građanin
- Pridružio: 26 Jul 2003
- Poruke: 384
- Gde živiš: Beograd
|
heh, definitivno mi je potreban odmor, totalno sam prevideo sta si pokazao...
|
|
|
|
Poslao: 22 Jan 2008 23:58
|
offline
- umpirsky
- Počasni građanin
- Pridružio: 01 Apr 2005
- Poruke: 797
- Gde živiš: Niš
|
Možda se glupo ubacujem, ali usput da postavim jedno pitanje.
Volim disciplinu u programiranju, pa me zanima:
koji je najbolji i najsigurniji način za uništavanje objekata u PHP-u???
Istanciraš objekat tipa neke klase, uradiš šta ti treba i zbog uštede u memoriji + preglednost koda, ti uradiš:
$object = null;
ili
unset($object);
ili nešto treće...
Dakle šta preporučujete umesto destruktora?
|
|
|
|
|
Poslao: 23 Jan 2008 00:12
|
offline
- umpirsky
- Počasni građanin
- Pridružio: 01 Apr 2005
- Poruke: 797
- Gde živiš: Niš
|
Haker si Drogane...
U cemu je razlika.
Šta će uradi prvo a šta drugo?
|
|
|
|
Poslao: 23 Jan 2008 16:05
|
offline
- igor86
- Stručni saradnik
Web programiranje
- Pridružio: 24 Maj 2006
- Poruke: 1633
|
Bravo @bNasty
@zzzl
Rezultat je isti sta god da koristis. Meni je uobicajeno unset();
Ali inace tu postoji problem ako ti neka promjenljiva sadrzi instancu tog objekta, neces osloboditi memoriju.
Recimo:
$a = new test();
$b = $a;
unset( $a );
|
|
|
|