SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 06.10.2003, 18:11:58
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
ein paar grundlegende fragen

Hi leutz.

Ich habe da mal einige Fragen zu gewissen Schreibweisen und deren Vorteile. Ich möchte von euch wissen welche der Schreibweisen besser/schneller ist und vorallem warum! (oder ob es keine rolle spielt)

1)
htmltest<?=$phpvar?>htmltext
htmltest<? echo $phpvar; ?>htmltext
htmltest<?PHP echo $phpvar; ?>htmltext

Brauche ich jedes mal beim aufrufen <?PHP zu schreiben? Alle 3 möglichkeiten funktionieren, nun möchte ich wissen, welche ist besser/schneller, oder welche wird von PHP empfohlen?


2)
if ($bla) echo "1";
if ($bla) { echo "1"; }

Habe mal hier im Forum gelesen, dass man die Klammern nicht weglassen soll. Klar, es verleitet zu ungenauem Programmieren, aber gibt es einen "richtigen" Grund, warum man die Klammern nicht weglassen soll?


3)
echo "Dies ist eine Variable: $var.";
echo "Dies ist eine Variable: ".$var.". ";

Ich habe gelesen, dass die 2. Variante schneller ist, stimmt das?
Mit Zitat antworten
  #2  
Alt 06.10.2003, 18:56:22
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 55
Beiträge: 4.748
Zitat:
1)
htmltest<?=$phpvar?>htmltext
htmltest<? echo $phpvar; ?>htmltext
htmltest<?PHP echo $phpvar; ?>htmltext

Brauche ich jedes mal beim aufrufen <?PHP zu schreiben? Alle 3 möglichkeiten funktionieren, nun möchte ich wissen, welche ist besser/schneller, oder welche wird von PHP empfohlen?
Fangen wir mal anders an: In der php.ini sollte short_open_tag auf Off stehen.
Prinzipiell ist es egal, was Du nutzt, aber <? kann mit XML verwechselt werden und das muss ja nicht sein. Also fordert man <?php und schon klappt auch <?= nicht mehr.


Zitat:
2)
if ($bla) echo "1";
if ($bla) { echo "1"; }

Habe mal hier im Forum gelesen, dass man die Klammern nicht weglassen soll. Klar, es verleitet zu ungenauem Programmieren, aber gibt es einen "richtigen" Grund, warum man die Klammern nicht weglassen soll?
Noch sauberer ist das:
PHP-Code:
if ($bla) {
    echo 
"1";

Bei php.net gibt's dazu auch ein paar 'Vorschriften': http://pear.php.net/manual/en/standards.php
Es dient einfach mal der Übersichtlichkeit. Falls Du mal wieder eine Frage hast, dann danke mindestens ich Dir dafür, wenn Du { und } nutzt.


Zitat:
3)
echo "Dies ist eine Variable: $var.";
echo "Dies ist eine Variable: ".$var.". ";

Ich habe gelesen, dass die 2. Variante schneller ist, stimmt das?
Nein. Das wäre theoretisch schneller:
PHP-Code:
echo 'Dies ist eine Variable: '.$var.'. '
Alles zwischen " wird von PHP geparsed, frisst also mehr Zeit. Das zwischen ' wird einfach ausgegeben, genau wie pures HTML-Zeugs außerhalb von <?php ... ?>
Da sich das aber alles nicht viel nimmt vertrete ich die Meinung, dass es leserlich sein muss und nicht geschwindigkeitsoptimiert.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 06.10.2003, 20:18:26
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
Danke Dir!
Mit Zitat antworten
  #4  
Alt 07.10.2003, 02:05:45
AlexWeber AlexWeber ist offline
Anfänger
 
Registriert seit: Jun 2003
Ort: Burgkirchen
Beiträge: 18
von Alex Weber

Hi,
ich bin kein großartiger Programmierer, aber ich werde fersuchen deine Wragen verständlich beantworten.
Ich habe ein guten C/C++ Lerer und so hat er mir die sahen erklärt...

1)
htmltest<?=$phpvar?>htmltext
htmltest<? echo $phpvar; ?>htmltext
htmltest<?PHP echo $phpvar; ?>htmltext

Brauche ich jedes mal beim aufrufen <?PHP zu schreiben? Alle 3 möglichkeiten funktionieren, nun möchte ich wissen, welche ist besser/schneller, oder welche wird von PHP empfohlen?
----------------------------------------------------------------------
wenn du erwas abfragen wilst oder sonst was in der Richtung, dann brauchst du <?php if(Anweisung); ?>
wenn du <?= $Variable; ?> heist nichts anderes als
<?php echo $Variable; ?> oder bzw. <?php print $Variable; ?> das heist dass du mit der <?= ?> schreibweise einfach weniger zu schreiben hast und damit deine Code übersichtlicher und leichter machst. Einen anderen unterschied kenne ich nicht...
----------------------------------------------------------------------

2)
if ($bla) echo "1";
if ($bla) { echo "1"; }

Habe mal hier im Forum gelesen, dass man die Klammern nicht weglassen soll. Klar, es verleitet zu ungenauem Programmieren, aber gibt es einen "richtigen" Grund, warum man die Klammern nicht weglassen soll?
----------------------------------------------------------------------
Wenn nach der if() nur eine Anweisung gibt dann kann man ohne klamer schreiben z.B:

if($Vorname == "Alex") -->Wenn $Vorname gleich "Alex"
$Nachname = "Weber"; -->dann ist $Nachname "Weber"
else -->Wenn $Vorname nicht gleich "Alex"
$Nachname_2 = "Mueler"; -->dann ist $Nachname_2 "Mueler"

aber wenn es heist dass 2 oder mehr Anweisungen nach dem if() gemacht werden müssen, dann muss du klamer machen. Du kans aber im else Fahl keine Klamer machen wenn da nur eine Anweisung ist...

if(Bedienung){
Anweisung1;
Anweisung2;
}
else
Anweisung3;

genau so wie if() ist es mit dem for(), while() und switch() Befehlen
es kann z.B. so aussehen:

if($vari==10)
for($i=0; $vari<=$i; $i++) -->$i++ gleicht $i=$i+1; $i-- genau so
while($vari!=0)
$vari--;
das gleicht
if($vari==10){
for($i=0; $vari<=$i; $i++){
while($vari!=0){
$vari--;
}
}
} --> Übersichtlicher??? Schon, aber länger und mann kann fergessen eine Klamer zu zumachen. Also unnotige Fehlerquelle, also immer wenn es gehet benutze ich die 1. Variante...
----------------------------------------------------------------------

3)
echo "Dies ist eine Variable: $var.";
echo "Dies ist eine Variable: ".$var.". ";

Ich habe gelesen, dass die 2. Variante schneller ist, stimmt das?
----------------------------------------------------------------------
print "bla bla bla...".$variable." bla bla bla...";
print "bla bla bla...$variable bla bla bla...";
Die sachen unterscheiden sich nur in der Schreibweise, sonst nichts...
ABER abundzu muss man die 1. Variante nehmen, da die 2. nicht funktionieren wird! Das passiert in den Fählen wie
z.B.:
$VARIABLE="Inhalt";
print "$VARIABLEbla_bla_bla"; -->Das wird nicht functionieren weil die function print nach der Variable $VARIABLEbla suchen wird die nicht existiert, stadt die Variable $VARIABLE zu nehmen...
In solchen Fählen hilft stadt
print "$VARIABLEbla_bla_bla";
print $VARIABLE."bla_bla_bla"; zu schreiben.
aber wenn es so aussehen soll wie z.B:
print "bla_bla_bla".$VARIABLE."/bla_bla_bla"; --> dann konte man schreiben
print "bla_bla_bla$VARIABLE/bla_bla_bla"; --> Wird genau das gleiche sein...
P.S.: die function print "text"; oder printf "text"; entspricht der Function echo "text";
----------------------------------------------------------------------
Ein Tip: ich weiß nicht ob du deis weißt, aber du kanst auch so was mit PHP machen:
z.B.:
<?php
if(Bedienung){
?>
HTML-Text
oder
JavaScript
<?php
}
else {
?>
HTML-Text
oder
sonst was.
<?php } ?>

Ich hoffe dass meine Erklärung verständlich war und dass die Mühe nicht um sonst war. Auch wollte ich mich endschuldigen für die Gramatische Fehler im Text, ich bin kein Deutscher sondern komme aus Kasachstan und bin seit nur 4,5 Jahren hier...
Wenn bei dir noch irgend welche fragen kommen, dann kannst du direkt mir schreiben mein e-mail: info@rus-burgkirchen.de . Ich weiß wie schwer das ist aleine mit Programmieren anfangen, und deswegen wurde ich dir gerne helfen...........

viele Grüße,
Alex Weber...
Mit Zitat antworten
  #5  
Alt 07.10.2003, 07:29:57
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 55
Beiträge: 4.748
Re: von Alex Weber

Zitat:
ABER abundzu muss man die 1. Variante nehmen, da die 2. nicht funktionieren wird! Das passiert in den Fählen wie
z.B.:
$VARIABLE="Inhalt";
print "$VARIABLEbla_bla_bla"; -->Das wird nicht functionieren weil die function print nach der Variable $VARIABLEbla suchen wird die nicht existiert, stadt die Variable $VARIABLE zu nehmen...
In solchen Fählen hilft stadt
print "$VARIABLEbla_bla_bla";
print $VARIABLE."bla_bla_bla"; zu schreiben.
aber wenn es so aussehen soll wie z.B:
print "bla_bla_bla".$VARIABLE."/bla_bla_bla"; --> dann konte man schreiben
print "bla_bla_bla$VARIABLE/bla_bla_bla"; --> Wird genau das gleiche sein...
Innerhalb von Strings kann man es so machen:
PHP-Code:
echo "Das ist ein Wert aus einem Array: {$arr["feld"][0]['feld']} - cool, wa? :)"
Ob man auf diese Weise auch Rechnungen intgrieren kann weiß ich nicht, hab ich noch nicht getestet.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #6  
Alt 07.10.2003, 11:41:43
Benutzerbild von RDJ
RDJ RDJ ist offline
Junior Member
 
Registriert seit: Oct 2002
Ort: 49° 48' N 9° 56' O
Beiträge: 169
nochwas zu den if anweisungen.... man kann genausogut (in manchen fällen)

PHP-Code:
switch($var)
{

case 
wert  tuedies ; break ; 
case 
wert2 teuedas ; break ; 
default  :   
tuenix  ; break ; 

nehmen
Mit Zitat antworten
  #7  
Alt 07.10.2003, 11:43:34
sourcecode sourcecode ist offline
Junior Member
 
Registriert seit: May 2003
Beiträge: 287
Nein, es geht nicht, innerhalb der geschweiften Klammer etwas zu berechnen. Sie ist wirklich nur zur Variablenausgabe gedacht und ist in speziell drei Fällen erforderlich:

1) dem schon erwähnten: wenn direkt nach der variable ein alphanumerisches zeichen oder ein unterstrich folgen soll (denn diese sind die zeichen, die man für variablennamen verwenden darf), damit wirklich nur die gewünschte variable interpretiert wird, und nicht alles bis zum ersten ungültigen zeichen

2) Wenn man ein mehrdimensionales Array ausgeben will:
PHP-Code:
echo "$Array[0][0]"// würde den Inhalt von $Array[0] + "[0]" ausgeben
echo "{$Array[0][0]}"// würde den Inhalt von $Array[0][0] ausgeben 
3) Wenn man ein assoziativem Array ausgeben will:
PHP-Code:
echo "$Array[Name]"// Bedenke: Du verwendest hier nicht den String "Name", sondern die Konstante, die nur dann mit dem String identisch ist, wenn sie so definiert oder garnicht definiert und vom PHP-Interpreter so vermutet wurde (mit entsprechender Notice-Meldung im Errorlog). Also schreib das so nur, wenn die Konstante definiert ist, sonst in Hochkommata (Single quotes) oder Anführungszeichen (double quotes).
echo "$Array["Name"]"// klappt nicht, da die double quotes Anfang und Ende des Strings markieren, kann also nicht dazwischen verwendet werden, ohne es zu escapen (so wie auch single quotes escaped werden müssen, wenn diese den Anfang und Ende des Strings markieren, oder wie $ escaped werden muss, wenn es innerhalb double quotes geschrieben werden soll)
echo "$Array['Name']"// klappt, weil Array-Index in Hochkommate und gesammter String in Anführungszeichen steht - umgekehrt gehts nicht
echo "$Array["Name"]"// klappt auch, weil double quotes escaped wurden, sieht aber scheiße aus
echo "{$Array["Name"]}"// innerhalb geschweifter Klammern notiert, muss der Array-Index nicht escaped werden. 
Nicht zu vergessen, das man natürlich die althergebrachte Variante verwenden kann, es mit dem Verkettungsoperator . anzuhängen und nur den Array-Index in quotes zu schreiben.
Mit Zitat antworten
  #8  
Alt 07.10.2003, 12:21:15
Gweilo Gweilo ist offline
Member
 
Registriert seit: Oct 2002
Ort: ch
Beiträge: 822
Danke für die zahlreichen antworten, aber ihr beantwortet da sachen, die ich gar nicht gefragt habe! Meine fragen waren eigentlich schon nach C4's Antwort zur genüge beantwortet. Was man alles machen kann von switch bis weiss-nicht-was, kenne ich. Die Frage war eigentlich auf die Vorteile der einzelnen Methoden gerichtet (und warum man gewisse sachen nicht tun sollte). Naja, schaden tut's bestimmt nicht =)
Mit Zitat antworten
  #9  
Alt 07.10.2003, 14:23:44
Benutzerbild von RDJ
RDJ RDJ ist offline
Junior Member
 
Registriert seit: Oct 2002
Ort: 49° 48' N 9° 56' O
Beiträge: 169
Vorschlag : [KLUGSCHEIßER MODUS] Einfach mit ner Stoppuhr hinsetzen und prüfen was für eine Schreibweise besser / schneller ist
[/KLUGSCHEIßER MODUS] :o)


aber jetzt ma im ernst, es bleibt dir überlassen wie du den Code gestaltest.
Mit Zitat antworten
  #10  
Alt 07.10.2003, 18:16:15
Fuchs Fuchs ist offline
Junior Member
 
Registriert seit: Jul 2003
Beiträge: 182
Zitat:
[i]Nein. Das wäre theoretisch schneller:
PHP-Code:
echo 'Dies ist eine Variable: '.$var.'. '
Da waere mir gar nicht sooo sicher da deine Variante mehr OP-Codes Produziert.

// Hab's grad gemessen und diese Variante verliert um 15%.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:39:36 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.


© 2001-2025 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt