![]() |
elseif of "else if" (PHP)
Weiß zufällig jemand, was davon "besser" ist?
So richtig finden konnte ich da nichts, außer, daß im "Zend Coding Standard" drinstehn soll, daß man es getennt verwenden soll. Allerdings scheinen die sich nur auf die Syntax zu beziehen und was für den Programmierer angeblich besser verständlich sein soll. Aber was ist für den PHP-Parser, bzw. für die Ausführungsgeschwingkeit optimaler? Mir persönlich ist die Schreibweise egal. Aber da ich grad so einige Codes überarbeite und hier und da aber jeweils das Eine oder Andere verwendet wird, würde ich nun gerne alles auf einen einheitlichen Stand bringen ... nur auf welchen? |
AW: elseif of "else if" (PHP)
Hi Frank,
im Prinzip sollte es reine Geschmacksache sein. Auf die Ausführungsgeschwindigkeit hat es meines Wissens keinen Einfluss, da es eine reine Syntax-Sache ist. Ich würde jedoch "else if" nutzen, da diese Schreibweise häufiger anzutreffen ist und in zahlreichen Programmiersprachen verwendet werden kann. Damit wird ein Parser diese Unterstützen. Ein echter PHP-Parser muss jedoch mit beidem klar kommen. Auf php.net steht dazu das: Zitat:
PHP-Quellcode:
würde ich nicht verwenden. Die ist einfach zu exotisch. *g*
if($a > $b):
echo $a." ist größer als ".$b; |
AW: elseif of "else if" (PHP)
Ja, das mit dem Doppelpunkt hatte ich auch gesehn, aber das verwendet ja keiner ... zumindestens ich nicht. :-D
Na OK, dann lassich ich mal ein Suchen+Ersetzen über meine Dateien laufen und 'nen Leherzeichen einfügen. :) |
AW: elseif of "else if" (PHP)
Du bist der erste, den ich kenne, der "elseif" nutzt.
Mich graut's davor, wobei das von der ADA-Programmierung und dem dortigen "elsif" (ohne mittleres e) kommen kann, das ich schrecklich fand. |
AW: elseif of "else if" (PHP)
n'ja, es spart ein paar "wertvolle" Bytes ein :zwinker:
Aber die meisten elseif lassen sich in älteren Dateien finden. :michrausred: |
AW: elseif of "else if" (PHP)
Hi!
Irgendwie gibt es das in zig Varianten, habe ich das Gefühl. In Python ist es elif - und da ist es verpflichtend mit den Doppelpunkten ;) Grüße, Frederic |
AW: elseif of "else if" (PHP)
Wieder ein paar Bytes gespart. Bald gibt "eif" oder nur "e". :lol:
|
AW: elseif of "else if" (PHP)
Hi,
die Doppelpunkt-Variante mit "endif;" ist übrigens für Templates ganz nützlich. Mein Template-System basiert auf PHP-Dateien (zu Gunsten der Performance), dort verwende ich die regelmäßig. Liest sich einfach besser als
Code:
. ;-)
<? } ?>
Liebe Grüße, Valle |
AW: elseif of "else if" (PHP)
och, dafür bastel ich mir einen kleinen Templateparser ... wollte es vermeiden PHP-Code in die Templatedateien einzumischen, bzw. das in HTML
|
AW: elseif of "else if" (PHP)
Zitat:
Irgendwo stand mal, dass "<?" allgemein ist (nicht nur für PHP) und dass es unter bestimmten Umständen zu Problemen führen kann. Ich weiß zwar nicht wieso und wobei, aber ich würde es gleich richtig machen. ;) |
AW: elseif of "else if" (PHP)
<? ist allgemein und man könnte es auch mit was Anderem verbinden ... z.B. mit <?PERL .
Und oftmals sind die kurzen Tags (seit PHP5 wird es glaub ich auch empfohlen oer war's von Seiten des Apache? :gruebel: ) sogar standardmäßig deaktiviert. Wobei aber viele Webhoster und vorallem bei solchen shared Webhostingpaketen und virtuellen Servern es standardmäßig dennoch aktiviert haben, weil sonst ja Wieles nicht läuft ... genauso isses mit den bösen Register globals (welche es ab PHP 6.0 zum Glück nicht mehr geben wird). |
AW: elseif of "else if" (PHP)
also ich benutze in php immer elseif :oops:
Edit: php-Code und HTML zu mischen finde ich persönlich eine Unart, die leider Schule gemacht hat. So einen Code zu warten ist einfach eklig. (meine persönliche Meinung...) Ich mach das eigentlich immer so, dass ich Logik und Anzeige komplett trenne und über RegEx dann Platzhalter ins HTML-Template im "Seiten-Konstruktor" ersetze. Das hat den Vorteil, dass man Skins austauschen kann, man im Template auch Container definieren kann, die dann auch mal an einer anderen Position sein können und ausserdem ist die Code-Wartung um einiges einfacher. |
AW: elseif of "else if" (PHP)
Nja, theoretisch könnte der Parser hier schneller schein, da er ja nur an einer Stelle ein Wort und nicht an mehreren Stellen dieses verarbeiten muß.
Wie es nach dem Parsen dann optimiert wird, weiß ich nicht. Aber soooo viele else-if verwende ich nun auch nicht, als daß da wirklich was spürbar wäre. Darum isses mir ja egal was ... ich wollte nur gerne eben nur Eines von Beiden verwenden und da mal schauen was warum öfters gerne verwendet wird. :-D Diese Exceptionbehandlung nutze ich auch noch nicht, wobei mir etwas wie Try-Finally fehlt, welches ich nicht fand :(
Code:
Dieses entspricht ja nur einem Try-Except. :?
try {
... } catch (Exception $e) { echo 'Exception abgefangen: ', $e->getMessage(), "\n"; } Aber vorallem die neuen Klassen-Destructoren machen einem das Leben leichter. :thumb: |
AW: elseif of "else if" (PHP)
Achja, es gibt ja auch noch eine ganz "tolle" else if-Variante in php, wenns um "Bytes sparen" geht :lol: :
Code:
das ist das gleiche wie
$v1 = 3 ;
$f=($v1==1)?"1":(($v1==2)?"2":"weder 1 noch 2") ; echo "v1 ist ".$f ;
Code:
...und lässt sich natürlich beliebig fortsetzen. Aber wartbar ist das nimmer so ganz :D
if($v1==1){
$f = "1" ; }else if($v1==2){ $f = "2" ; }else{ $f = "weder 1 noch 2" ; } |
AW: elseif of "else if" (PHP)
jupp, witzig ist auch sowas
Delphi-Quellcode:
if S = '' then
begin X := gibmirwas; if assigned(X) then begin if IsString(X['dd']) then S := Trim(X['fd']) else S := ToInteger(X['fd']); end else S := 'default'; end;
Code:
Oh man, mit welchen schmutzigen Tricks man Dieses, die Zuweisung in Abfragen und die Typenfreiheit ausnutzen kann. :oops:
if (!$S) $S = ($X = gibmirwas()) ? (is_string($X['dd']) ? trim($X['dd']) : intval($X['dd'])) : 'default';
Aber wenn man's übertreibt, dann sollte man sich nicht über die "Lesbarkeit" beschweren. :stupid: |
AW: elseif of "else if" (PHP)
[OT]
Zitat:
PHP-Quellcode:
(Zur Erklärung: Das ist meine Lösung zu einer Aufgabe aus Info, die lautete, eine Schleife zu programmieren, die folgende Ausgabe erzeugt:
for ($i=13; $i<=45; $i += ($i==21)?(33-$i):(4)) {
print "$i "; }
PHP-Quellcode:
)
13 17 21 33 37 41 45
[/OT] Zum Thema: Ich benutze in PHP auch immer
PHP-Quellcode:
, einfach deshalb, weil ich es bisher immer so gesehen habe, und dachte, das wäre die einzige valide Syntax.
elseif
|
AW: elseif of "else if" (PHP)
Code:
aus meinem echten Einsatz:
for ($i=13; $i<=45; $i+=($i==21)?33-$i:4) print "$i ";
Code:
Mit Code-Highlighting sieht es noch halbwegs übersichtlich aus. :stupid:
function PHP_Include($FileName, $AddScriptDir = true) {
global $Config; if ($AddScriptDir) $FileName = (@$Config['Scripts'] ? $Config['Scripts'] : ($Config['RootPath'] ? $Config['RootPath'] . 'Scripts/' : dirname(__FILE__) . '/')) . $FileName; require_once(preg_replace('#\.php$#i', $Config['Ext'] ? $Config['Ext'] : ((($X = dirname(__FILE__) . '/Functions.*') && ($Y = glob($X))) ? substr($Y[0], strlen($X) - 2) : '.php'), $FileName)); } Zitat:
|
AW: elseif of "else if" (PHP)
Zitat:
Liebe Grüße, Valle |
AW: elseif of "else if" (PHP)
Zitat:
Um was zum Thema zu sagen: elseif oder else if ist ne Geschmackssache. Gleich wie Tabs/Spaces, Klammernsetzung, Einruecktiefe, usw. try-finally gibts in PHP nicht, und so ein try-catch (Exception $e)-echo ist so ziemlich das duemmste was du machen kannst. Da kannst gleich display_errors auf true setzen oder die Fehler bei Twitter posten (dafuer gibts auch ein Plugin). @Valle: korrekt. short_tags off, asp_tags off, register_globals off, display_errors off, usw. Wenn man daran was aendert sollte man auch wissen was man macht. Greetz alcaeus |
AW: elseif of "else if" (PHP)
Oh ... was soeine kleine PHP-Pause alles ausmacht. :shock:
jupp, darum hab ich die Exceptionbehandlung bis jetzt auch nur mal bei einem kleinen Test ausprobiert und sonst nie verwendet. Fehler werden in eine LogDatei eingetragen, falls die DB nicht erreichbar ist oder wenn es "schwere" Fehler sind. Und der Benutzer bekommt nur 'ne Info angezeigt, damit er weiß daß etwas nicht geht und sich nicht fragt, warum nix kommt.
Code:
PHP_Die kürzt dabei auch (un)wichtige Teile aus Dateipfaden im Text.
$Config['DB'] = new MySQL(...);
if (!$Config['DB']->LastResult) { Log_WriteFile('database was not connected: ' . $Config['DB']->ErrorStr()); PHP_Die('Server Error: The page can not be displayed.', __FILE__, __LINE__); } (bei meinem Space steht ja der Username mit im Pfad, so ala /home/www/.../html/Index.php ) Aber die display_errors und einige andere Dinge hab ich bei meinem lokalten Testserver an. :stupid: Man glaubts garnicht, aber eigentlich wirft jedes der "großen" CMS Unmassen an Warnungen/Infos. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz