Sida 1 av 1

fetch_assoc()[´namn´]

Postat: 7 september 2014, 13:58:40
av MadModder
Hur 17 skriver man denna lilla php 5.4-snutt så det funkar i 5.3?

Kod: Markera allt

while($row = $lag->fetch_assoc()['namn']) {
    if($lagnamn === $row) {
    $found=true;
    }
Det är det där med arrary dereferencing. Man måste lagra värdet temporärt i en variabel och sen ta ut rätt element i 5.3, men jag har inte helt koll på vad -> egentligen gör heller så kommer inte på riktigt hur jag ska göra om while-loopen...

Re: fetch_assoc()[´namn´]

Postat: 7 september 2014, 14:01:21
av Muppis

Kod: Markera allt

while($row = $lag->fetch_assoc()) {
    if($lagnamn === $row['namn']) {
        $found=true;
    }

Re: fetch_assoc()[´namn´]

Postat: 7 september 2014, 14:14:37
av MadModder
Hmm... det ser misstänkt enkelt ut att bara flytta namn :p

[edit]
Men jag kan meddela att det funkar utmärkt. :)
Tackar.

Re: fetch_assoc()[´namn´]

Postat: 10 september 2014, 11:39:35
av Wedge
Nedbrytning av uttrycket:
$lag->
Vi har ett objekt som heter "lag", och vi kikar in i det...

fetch_assoc()
Det vi pekar ur är nånting som heter "fetch_assoc", och det är en funktion (metod, om man ska vara helt OO-korrekt). Funktionen anropas, och lämnar tillbaka ett returvärde. Så här långt borde uttrycket $lag->fetch_assoc() vara likvärdigt med en associativ array, med tanke på funktionsnamnet. Detta klarar även fossila PHP-versioner.

['namn']
Med tillägget ['namn'] plockas elementet med namnet 'namn' ut ur arrayen. Relativt nytt påfund. Tidigare kunde man inte dereferera (?) funktionsreturvärden direkt, utan var tvungen att mellanlagra i en variabel som i sin tur kunde derefereras.