Gå til innhold

Parse error i variabel


Anbefalte innlegg

Hei,

 

Jeg har skrevet følgende variabel:

$viktig= if($_POST["viktig"] === '1'){ "1" } else { "0" };

Men den resulterer bare i følgende feilmelding:

Parse error: parse error in <<path>> on line 14

(<<path>> er path'en til php-filen. Variabelen ligger på linje 14.)

 

Hva kan jeg gjøre for å få det til?

Må jeg skrive den om fullstendig?

 

Målet mitt er å få variabelen $viktig til å bli 0 hvis den ikke inneholder noe, og 1 hvis den inneholder 1.

 

Altså:

Hvis $_POST["viktig"] er 1: $viktig="1"

Hvis $_POST["viktig"] ikke er 1: $viktig="0"

Lenke til kommentar
Videoannonse
Annonse

Tror du må skrive

if($_POST['viktig']=='1'){

$viktig=1;

}

else{

$viktig=0;

};

 

Men du trenger ikkke bruke if setning her, du kan også skrive $viktig=$_POST['viktig'];

ulempen med dette er at da kan variabelen viktig bli satt til hva som helst, derfor kan du sette på en if($viktig!=1){$viktig=0;}

da vil $viktig alltid være 0 eller 1

Lenke til kommentar

Tror trådstarter har litt bruk for en annen måte å skrive if-setninger på. I dette tilfellet vi det se slik ut:

$viktig = ($_POST["viktig"] === '1') ? 1 : 0;

 

Edit: For å forklare den kompakte koden over:

$viktig blir satt til retur-verdien fra "greia". Hvis testen inni () gir true returneres det mellom ? og : . Hvis testen gir false returneres det mellom : og ; .

Endret av Ernie
Lenke til kommentar
Tror trådstarter har litt bruk for en annen måte å skrive if-setninger på. I dette tilfellet vi det se slik ut:

$viktig = ($_POST["viktig"] === '1') ? 1 : 0;

 

Edit: For å forklare den kompakte koden over:

$viktig blir satt til retur-verdien fra "greia". Hvis testen inni () gir true returneres det mellom ? og : . Hvis testen gir false returneres det mellom : og ; .

5367094[/snapback]

Men husk på at den metoden er tregere enn vanlig if/else:

http://bzabza.com/php/113/

Lenke til kommentar
Tror trådstarter har litt bruk for en annen måte å skrive if-setninger på. I dette tilfellet vi det se slik ut:

$viktig = ($_POST["viktig"] === '1') ? 1 : 0;

 

Edit: For å forklare den kompakte koden over:

$viktig blir satt til retur-verdien fra "greia". Hvis testen inni () gir true returneres det mellom ? og : . Hvis testen gir false returneres det mellom : og ; .

5367094[/snapback]

Men husk på at den metoden er tregere enn vanlig if/else:

http://bzabza.com/php/113/

5367507[/snapback]

Oida, det var en ikke helt ubetydelig forskjell det :huh:

Lenke til kommentar

Takk for alle svar.

Jeg får ut det tallet jeg ønsker med Trrunde og Ernie sine koder.

Men fremdeles nå får jeg opp en annen feilmelding:

Notice: Undefined index: viktig in <<path>> on line 17

Linje 17 er slik:

$viktig = ($_POST["viktig"] === '1') ? 1 : 0;

Lenke til kommentar
Gjest Slettet+6132
Takk for alle svar.

Jeg får ut det tallet jeg ønsker med Trrunde og Ernie sine koder.

Men fremdeles nå får jeg opp en annen feilmelding:

Notice: Undefined index: viktig in <<path>> on line 17

Linje 17 er slik:

$viktig = ($_POST["viktig"] === '1') ? 1 : 0;

5370928[/snapback]

 

if (isset($_POST['viktig']) {
$viktig = ($_POST["viktig"] === '1') ? 1 : 0;
}

Lenke til kommentar
Men husk på at den metoden er tregere enn vanlig if/else:

http://bzabza.com/php/113/

 

Oida, det var en ikke helt ubetydelig forskjell det

 

Ingen fare, den artikkelen sikter til en helt absurd sammenligning. Scriptet kjører sammenligningen 10 000 ganger, og klarer likevel ikke å oppnå forskjell som i det hele tatt er av vesentlig forskjell!

 

Det er kanskje morsomt å vite, men totat sett så har det ingen betydning. Forskjellen på å koble til en ekstert databaseserver i forhold til localhost kan være mye større, det kan ta lengre tid å sende en mail - i det hele tatt selv om scriptet kjøres 10 000 ganger så er forskjellen ca. ikke tilstede.

Lenke til kommentar
Men husk på at den metoden er tregere enn vanlig if/else:

http://bzabza.com/php/113/

 

Oida, det var en ikke helt ubetydelig forskjell det

 

Ingen fare, den artikkelen sikter til en helt absurd sammenligning. Scriptet kjører sammenligningen 10 000 ganger, og klarer likevel ikke å oppnå forskjell som i det hele tatt er av vesentlig forskjell!

 

Det er kanskje morsomt å vite, men totat sett så har det ingen betydning. Forskjellen på å koble til en ekstert databaseserver i forhold til localhost kan være mye større, det kan ta lengre tid å sende en mail - i det hele tatt selv om scriptet kjøres 10 000 ganger så er forskjellen ca. ikke tilstede.

5371489[/snapback]

Hmm ... når du sier det så har du jo rett i det da, men slike ting har en liten tendens til å bli litt større når man tenker på at man skal kjøre ut en del sier pr. sek. og at man har et par stk av det på en side. Ubetydelig i et "små"-script, men kan fort bli betydelig sammen med andre ting i litt "større" script.

Endret av Ernie
Lenke til kommentar
Hmm ... når du sier det så har du jo rett i det da, men slike ting har en liten tendens til å bli litt større når man tenker på at man skal kjøre ut en del sier pr. sek. og at man har et par stk av det på en side. Ubetydelig i et "små"-script, men kan fort bli betydelig sammen med andre ting i litt "større" script.

5371574[/snapback]

 

Jeg skjønner tankegangen din, men er desverre for liten forskjell for at det utgjør noen forskjell - selv i store script med mange brukere. Dette blir som å diskutere bruken av " vs. ' - det utgjør en så enormt liten forskjell, det er mer snakk om kodestil.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...