zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden $tmp='' -> elegantere Lösung?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 03.11.2007, 00:21
A noobish expert
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 11.10.2007
Beiträge: 126
spacegaier befindet sich auf einem aufstrebenden Ast
Standard $tmp='' -> elegantere Lösung?

Hallo zusammen,

habe schon wieder ein kleines Problem, oder eben nicht. Habe für das Problemchen eine lösung, die mir aber nicht sehr elegant vorkommt, deshalb frage ich hier zur Sicherheit mal nach:

Habe in meinen aktuellen Projekt viele Funktionen, die mir eine Variable namnes $tmp als Rückgabewert liefern.

Nun kommt da aber z.B. folgendes vor:

PHP-Code:
$res mysql_query("SELECT * FROM Pages");
         
while(
$row mysql_fetch_array($res)) 

    
$tmp .= "Texr<br>";    
}

return
$tmp
Ich habe eine while-Schleife, in welcher ich and den String von $tmp immer etwas anhänge. Nun ist $tmp vor der SChleife aber noch nicht bekannt und somit gibt es eine Warnung. Eine Lösung wäre:

PHP-Code:
$tmp ''
Die scheint mir aber nicht sehr elegant zu sein.

Gibt es dafür noch etwas schöneres / bessere?

Ist es möglich (und sinnvoll) den " = " - Operator zu überladen (geht das in PHP überhaupt) mit einer Funktion, die automatisch prüft, ob die Variable ein String und leer ist, und wenn das der Fall ist, dann den ersten String in die Variable einsetzt und den Rest anhängt?

Grüße - spacegaier
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 03.11.2007, 00:50
Benutzerbild von paracelsus
be simple
XHTMLforum-Kenner
 
Registriert seit: 16.07.2007
Ort: Kapfenberg - Austria, einige meinen am "Anus Mundi"
Beiträge: 4.788
paracelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nettparacelsus ist einfach richtig nett
Standard

--- Beitrag gelöscht ---
Vergiss es, hab Dich falsch verstanden.
Bye

Geändert von paracelsus (03.11.2007 um 07:56 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 03.11.2007, 07:33
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.925
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Zitat:
Die scheint mir aber nicht sehr elegant zu sein.
Das ist aber so absolut ok und hat nichts mit "Elegant" zu tun.

Auch könntest du vor der Schleife schrieben:

if(!isset($tmp)) $tmp='';
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
  #4 (permalink)  
Alt 03.11.2007, 12:00
Benutzerbild von ArcVieh
//
XHTMLforum-Kenner
 
Registriert seit: 19.12.2006
Ort: Gütersloh
Beiträge: 1.844
ArcVieh sorgt für eine eindrucksvolle AtmosphäreArcVieh sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Boris Beitrag anzeigen
Das ist aber so absolut ok und hat nichts mit "Elegant" zu tun.

Auch könntest du vor der Schleife schrieben:

if(!isset($tmp)) $tmp='';
Aber vor der Schleife wird $tmp vermutlich noch nicht verwendet, von daher bleibt egtl. nur noch tmp='';, was in diesem Bezug ziemlich legitim ist.
Ansonsten halt:
PHP-Code:
while() {
   if(!isset(
$tmp)) {
      
$tmp 'text<br/>';
   } else {
      
$tmp .= 'text<br/>';
   }

Aber ob die Quantität qualitativ ist...
__________________
CSS-FAQ beantwortet die meisten Fragen | Retro coding gegen Divitis | Code validieren & posten für Hilfe
Mit Zitat antworten
  #5 (permalink)  
Alt 03.11.2007, 12:41
A noobish expert
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 11.10.2007
Beiträge: 126
spacegaier befindet sich auf einem aufstrebenden Ast
Standard

Okay, dann nehme ich halt:

PHP-Code:
if(!isset($tmp)) $tmp=''
Sieht schöner aus .

Trotzdem danke!
Mit Zitat antworten
  #6 (permalink)  
Alt 03.11.2007, 13:32
Benutzerbild von Pablo
4 8 15 16 23 42
XHTMLforum-Kenner
 
Registriert seit: 31.05.2004
Beiträge: 1.772
Pablo sorgt für eine eindrucksvolle AtmosphärePablo sorgt für eine eindrucksvolle Atmosphäre
Standard

Ich denke, $tmp = '' ist das sinnvollste.

Was ich mache, ist tmp-Variablen mehrfach zu benutzen. Und vor jeder Benutzung sollte diese Variable dann auf jeden Fall geleert werden, ich würde deshalb die unsinnige if-Abfrage abschaffen und das gnaze wie ursprünglich gefragt machen.

Gruß,
Pablo
__________________
Go Opera!
… oder Chrome. Auch cool.
Mit Zitat antworten
  #7 (permalink)  
Alt 03.11.2007, 14:23
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

PHP-Code:
$tmp ''
ist legitim und richtig, allerdings sollten Variablen "sprechende" Namen haben, also beschreiben was sich hinter ihnen verbirgt.
Mit Zitat antworten
  #8 (permalink)  
Alt 03.11.2007, 14:26
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 07.04.2007
Beiträge: 311
ct2oo4 befindet sich auf einem aufstrebenden Ast
Standard

Ich finde solche zusammengewürfelten Strings immer grauenvoll. Ich arbeite lieber mit Arrays:

PHP-Code:
$res mysql_query("SELECT * FROM Pages");

$tmp = array();
$i 0;         
while(
$row mysql_fetch_array($res)) 

    
$tmp[$i] = "Texr<br>";    
    
$i++;
}

return
$tmp
(ungetestet)

MfG

// (Was bedeutetet einen Operator "überladen"?)
__________________

Geändert von ct2oo4 (03.11.2007 um 14:34 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 03.11.2007, 14:36
lässt grüßen
XHTMLforum-Mitglied
 
Registriert seit: 08.10.2007
Ort: Berlin
Beiträge: 189
code_junkie wird schon bald berühmt werden
Standard

Zitat:
PHP-Code:
$tmp ''
Die scheint mir aber nicht sehr elegant zu sein.
Genau das ist doch elegant. Unschön wäre es hingegen, eine nicht initialisierte Variable zu verwenden.
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 03.11.2007, 14:50
Benutzerbild von ArcVieh
//
XHTMLforum-Kenner
 
Registriert seit: 19.12.2006
Ort: Gütersloh
Beiträge: 1.844
ArcVieh sorgt für eine eindrucksvolle AtmosphäreArcVieh sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von ct2oo4 Beitrag anzeigen
Ich finde solche zusammengewürfelten Strings immer grauenvoll. Ich arbeite lieber mit Arrays:

PHP-Code:
$res mysql_query("SELECT * FROM Pages");

$tmp = array();
$i 0;         
while(
$row mysql_fetch_array($res)) 

    
$tmp[$i] = "Texr<br>";    
    
$i++;
}

return
$tmp
(ungetestet)

MfG

// (Was bedeutetet einen Operator "überladen"?)
Wenn dann schon so, würde ein indiziertes Array völlig reichen.
PHP-Code:
$res mysql_query("SELECT * FROM Pages");        
while(
$row mysql_fetch_array($res)) 

    
$tmp[] = "Texr<br>";    
}

return 
$tmp
Erzeugt kein E_NOTICE...

EDIT: Um es nochmal deutlicher zu sagen: $tmp = ''; ist total ausreichend in diesem Kontext. Alles andere ist nur umständliches überprüfen.
PHP-Code:
$tmp = isset($tmp) ? $tmp.'Text<br/>' 'Text<br>'
So könnte man es auch noch machen, wenn man partout kein $tmp = '' verwenden will.
__________________
CSS-FAQ beantwortet die meisten Fragen | Retro coding gegen Divitis | Code validieren & posten für Hilfe

Geändert von ArcVieh (03.11.2007 um 14:53 Uhr)
Mit Zitat antworten
Sponsored Links
Antwort

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hintergrundbilder skalieren > alternative Lösung? grischa_sgd CSS 10 17.10.2007 08:37
Mit Doctype Strict -> Falsch, Ohne -> Richtig! RollingStones CSS 17 22.06.2007 20:47
Problem:Scrollbar verkleinert Content -> Lösung? Kail CSS 2 09.02.2007 15:44
Problem mit der Lösung für die Navigationsansicht Niets CSS 4 10.08.2006 14:07
Container nimmt nicht die Höhe seines Inhalts an Lestat CSS 10 04.08.2005 13:47


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:14 Uhr.