• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP Syntax - or statt if

silent321

New member
Hallo,

ich habe etwas im internet gehört und weis leider nicht ob das stimmt.

ich möchte meinen php code minimieren und habe daher den code schon sehr vereinfacht. Nun habe ich von folgendem gehört.

Man kann an bestimmten stellen statt eine if abfrage ein "OR" setzten.

Bsp:

PHP:
<?php

isset($_GET['var']) or $_GET['var'] == "0";

//soll das gleiche sein wie

if(isset($_GET['var']) else $_GET['var'] == "0";

?>

Stimmt das, das ich manchmal or statt if benutzen kann?



Also ich habe das aus Spass gerade mal ausprobiert und es hat funktioniert.

Ist das okay wenn ich das so anwende?

PHP:
<?php 

$var = "1";

isset($var) or $var = "2";

echo $var; // ausgabe 1

?>

PHP:
<?php 

isset($var) or $var = "2";

echo $var; // ausgabe 2

?>


Vielen Dank für Antworten ;)
 
na wenn es geht gehts^^

ich würde dir aber empfehlen sowas zu vermeiden, dein Code wird dadurch unleserlich, hätte ich ne Softwarefima würde ich es verbieten, dass solche Konstrukte genutzt werden, performancetechnisch bringt das nämlich meines Wissens nach nichts!

wenn du unbedingt kurzen Code haben willst, dann steig doch gleich auf Perl um, dort findest du auch viele gleichgesinnte die in einer Zeile Probleme lösen die man in anderen Sprachen in 10 löst... aber kapieren tut sowas dann nur jm. der richtig Plan hat (und auch dann nur wenn er sich die Sache ganz genau ansieht)
selbst beim selbst geschriebenen Code muss man dann nach 2Monaten schauen was man da eigentlich gebastelt hat...(ich spreche da aus Erfahrung^^)

PS du hast da im Internet was gehört? :D:D wie geht denn das? :p
 
Also ich finde so Code logisch und leicht nachvollziehbar, Logik Operatoren gibt es in fast jeder Programmiersprache und mir ist nicht klar, warum 10 Zeilen leichter verständlich sein sollen, als eine.

Das ganze ist eigentlich klar und nachvollziehbar
PHP:
aktion1 or aktion2
Wenn aktion1 unwahr ist wird aktion2 ausgeführt
Wenn aktion1 wahr ist wird aktion2 nicht ausgeführt

Das geht auch schön mit and
PHP:
aktion1 and aktion2
Wenn aktion1 wahr ist wird aktion2 ausgeführt
Wenn aktion1 unwahr ist wird aktion2 nicht ausgeführt

Wobei ich in dem Fall auch eher so schreiben würde:
PHP:
$var = isset($_GET['var']) ? $_GET['var'] : 'default';
 
Im Prinzip schon, aber der ?: Operator ist eigentlich zum zuweisen einer Variabel gedacht.
PHP:
$var = Bedingung ? wert1 : wert2;

Du hast eine Kontrollstruktur, die Anweisungen ausführt, da würde ich (selbst in Perl) den lesbaren Weg mit einer if-else Bedingung vorziehen.

So sähe das z.b. aus mit and und oder Verknüpfungen:
PHP:
(( isset($_GET['was']) and $_GET['was'] == "login") and include_once('login.php') )
or ((isset($_GET['n'])) and include_once('lostpw.php'));
Das ist aber nicht schön. Versuch lieber den Quelltext schöner zu formatieren oder Variabeln zu verwenden die etwas aussagen.
PHP:
$do_login = isset($_GET['was']) and $_GET['was'] == "login";
$lostpwd = isset($_GET['n']);

if($do_login)		include_once('login.php') )
elseif($lostpwd)	include_once('lostpw.php'));

Wobei in der Praxis das ganze nach einem dispatcher oder controller aussieht und da würd ich völlig anders vorgehen, kann aber nicht genug PHP um ein Beispiel zu zeigen.
 
Zurück
Oben