Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 3.430 pregleda

Najnovija ↓

array_shift() - zasto ovde? 28.04.2011. u 19:58 · pre 188 meseci #1
Zdravo,

Pratim tutorijal Lynda mysql_php i buni me ovaj kod:

static function find_by_id($id=0){
global $database;
$result_array = self::find_by_sql("SELECT * FROM users WHERE id=$id");
return !empty($result_array) ? array_shift($result_array) : false;
}

Znam sta radi funkcija array_shift ali mi nije jasno, zasto kada nadjem tog usera treba da izbrisem taj value? Zasto ga samo ne citam?
Da li postoji neka prednost ovoga?

Sve sto predavac kaze je: ode koristimo funkciju array_shift, secate se sta ona radi.



Hvala unapred.

Re: array_shift() - zasto ovde? 28.04.2011. u 20:27 · pre 188 meseci #2
Šta vraća metod find_by_sql?
array_shift pored toga što briše prvi elemenat niza, ona taj elemenat i vraća kao rezultat te funkcije.
Pa je moja pretpostavka, nisam gledao tutorijal zbog nečega kao sledeće:
Code (php):
<?php
$niz = array(
                 array(
                          'name1' => 'value1',
                          'name2' => 'value2',
                          'name3' => 'value3'
                        )
                );
print_r(array_shift($niz));
?>


Potpis
Banned - Not available
Re: array_shift() - zasto ovde? 28.04.2011. u 20:37 · pre 188 meseci #3
Hvala puno.
Evo i metod find_by_sql :

static function find_by_sql($sql=""){
global $database;
$result_set = $database->query($sql);

$object_array = array();
while($row = $database->fetch_array($result_set)){

$object_array[] = self::instantiate($row);

}
return $object_array;
}
Re: array_shift() - zasto ovde? 28.04.2011. u 21:08 · pre 188 meseci
izmenjeno 1 put, poslednji put Br@nkoR 28.04.2011. u 22:25
  1. Br@nkoR28.04.2011. u 22:25zapis iz teksta poruke
#4
Nisam baš vešt u objašnjavanju, javiće se nadam se neko ko će to bolje objasniti, ali kao i što sam napisao u onom primeru, pošto se od metoda find_by_id očekuje da vrati samo jedan red iz tabele, a pri tom se poziva metoda find_by_sql koja vraća niz pri čemu svaki član tog niza predstavlja acocijativni niz članova jednog reda tabele, nešto kao niz u nizu, matrica.
Isto kao da je napisno
return $result_array[0];
Potpis
Banned - Not available
Re: array_shift() - zasto ovde? 28.04.2011. u 21:11 · pre 188 meseci #5
Super objasnjavas nego mozda da ja malo preformulisem pitanje.

Znaci to je jedina funkcija koja to moze da odradi? Mene buni to brisanje iz niza. Ok mi je da uzmem vrednost prvog, ali cemu potreba za brisanjem?

Hvala.
Re: array_shift() - zasto ovde? 28.04.2011. u 22:03 · pre 188 meseci
izmenjeno 1 put, poslednji put Br@nkoR 28.04.2011. u 22:23
  1. Br@nkoR28.04.2011. u 22:23zapis iz teksta poruke
#6
Hvala :)
Ne, ne briše ga, već se prvi član niza vraća kao rezultat funkcije array_shift().
Može i pomoću funkcije reset() da se dobije prvi član niza.
Potpis
Banned - Not available
Re: array_shift() - zasto ovde? 29.04.2011. u 01:08 · pre 188 meseci #7
Citat:
Br@nkoR:
Ne, ne briše ga, već se prvi član niza vraća kao rezultat funkcije array_shift().
Može i pomoću funkcije reset() da se dobije prvi član niza.


Brise ga iz niza ali se u ovom slucaj taj niz vise nigde ne koristi.
Reset isto vraca prvi element niza ali ga ne brise.
Potpis
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme