webForumDet fria alternativet

Lokala värden och or die

PHP

6 svar · 407 visningar · startad av Swey

Medlem sedan apr. 20003 971 inlägg
Frågan#1

Finns det något sätt att använda lokala värden (som php_value och php_flag) i IIS? Det vekar som det är väldigt fattigt att anvädna PHP i Windows.

Sedan undrar jag vad or die står för. Har sökt i dokumentationen utan att finna något.

Är det ungefär så att detta
$var = funktion( ... ) or die( "funktionen misslyckades" );

betyder samma sak som detta
if( ( $var = funktion( ... ) ) == false ) die( "funktionen misslyckades" );
?

Dvs. att or anropas om funktionen returnerar falskt? Vild gissning bara. Och om det är så, kan man lika gärna skriva or echo eller nått sånt?

------------------
/mvh Swey

Programmera PHP

Medlem sedan dec. 19992 555 inlägg
#2

Din gissning är helt korrekt.

Det som ligger efter "or" körs endast om det innan misslyckades (returnerar falskt). Du kan använda "and" på motsvarande sätt, men då körs der som står efter endast om det innan lyckades (returnerar sant).

Väldigt praktiskt. :)

------------------
Robban < robban@lipogram.com >

Medlem sedan mars 2000267 inlägg
#3

or die är ett enkelt felmedelande..

Han skriver ut text och avbryter php tolkningen.

Iställer för att du skall göra det manuellt...

Väldigt praktiskt i bland.

Eller har jag fel???

Medlem sedan apr. 20003 971 inlägg
#4

or är som sagt bara en förkortning för == false

tack Robban

------------------
/mvh Swey

Programmera PHP

Medlem sedan dec. 19996 721 inlägg
#5

Nä, or betyder bara "eller", precis som vanligt (jag antar att du är med på Swey, och bara syftade på hur det blev här).

$var = funktion( ... ) or die( "funktionen misslyckades" );

"surrender or die"

if( ( $var = funktion( ... ) ) == false ) die( "funktionen misslyckades" );

"if X didn't surrender, die"

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

Medlem sedan aug. 200133 inlägg
#6

Skapa kodblock?

Kan man skapa kodblock också, eller kombinera or och and på motsvarande sätt?

myFunction() and {
    // kod som körs om det lyckas
} or {
    // kod som körs om det misslyckas
}
Medlem sedan juni 20008 205 inlägg
#7

Nej. Operatorerna till or/and (d.v.s. && samt ||) måste vara uttryck. Men man kan ha flera på rad:

foo() and bar() and baz() or quux();
255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)