Diskussion:Websiteentwicklung: PHP: Variablen

Aus Wikibooks
Zur Navigation springen Zur Suche springen

To-Do-List[Bearbeiten]

  • Gültigkeitsbereich (Lokal / In Funktionen / In Klassen)
  • zugriff auf globale Variablen ($GLOBALS['glob_var_name'];)
  • Unterschied Variablen <--> Konstanten (define('glob_const_name','wert') )
    --> Konstanten sind IMMER und ÜBERALL ansprechbar (lokal & global)
    Vielleciht auch was über das Speichermanagment!
  • Unterschied zwischen Pointer- und "Echten" Variablen (Pointer: "&$Var" Normal: "$Var")
  • Unterschied zwischen "$Variable Operator = $Variable" und "$Variable =Operator $Variable"
    (z.B. "$var .= 'Hallo';" und "$var =. 'Hallo'")
  • Unterschied zwischen "$Var = 0" und "$Var ist NULL" und "Fehler ;-)" (initialisiert / Null Pointer / Wert Null)
  • Unterschied zwischen "$var == False" und "$var === False"
  • Variable Variablen $$Var (nicht ganz so wichtig!)


Gruß Thomas Hmilch 22:32, 14. Apr 2005 (UTC)

Konstanten und variable Variablen habe ich nun mal gemacht, bin mir aber nicht sicher ob ich alle Bereiche abgedeckt habe, außerdem sind die Konstanten nun mit ihrem Gültigkeitsbereich allein --Floriam 12:33, 1. Jul 2006 (UTC)

Trinär Operator[Bearbeiten]

Ich denke nicht das der Trinär Operator hier unbedingt richtig ist. Ich würde ihn eher unter Abfragen (->if) einordnen und dann von hier darauf verlinken.

Trinär-Operator (nach Thomas Löffler) Link[Bearbeiten]

Der Link zu der Seite funktioniert bei mir nicht, liegt das Problem bei mir? Es kommt immer ein 404-Error. Vielleicht kann das ja mal einer überprüfen, denn sonst kann der Link doch auch gelöscht werden.

Transporter 20:47, 22. Apr 2006 (UTC)

Der link ist tot. Außerdem wird dieses Programmiersprachliche Konstrukt weitaus häufiger als bedingte Zuweisung bezeichnet und ist unter diesem Begriff weitaus häufiger zu finden. Deswegen habe ich die Überschrift ausgetauscht. -- ThePacker 20:53, 22. Apr 2006 (UTC)

Variablen Variablen[Bearbeiten]

echo $dieser_{$varname}_ist_toll; // Ausgabe: Test Ausgabe

Mit welcher PHP version soll denn dass hier Funktionieren? Mit PHP 5.2.6 bei mit funtioniert es nicht.

Was für ein nutzen soll das haben? Ich kann mir beim besten Willen nicht vorstellen, wozu man ein so abstruses syntaktisches Konstrukt brauchen kann. Ich glaube das Beispiel, hat hier nichts verloren.


137.248.1.11 12:59, 27. Mai 2008 (CEST)

Einer Variable zwei Variablen zuweisen[Bearbeiten]

Kann man einer Variable auch zwei Variablen zuweisen?
Mit $var1 = $var2 && $var3, oder so?

82.74.247.140 11:32, 19. Mär. 2009 (CET)
Dann müsstest du einen Array verwenden, z.B. $var[0] und $var[1]. Oder du tust $var2 und $var3 miteinander Verketteten (einen String aus beiden Erstellen) und dann zuweisen. Eine einzelne Variable kann nur einen einzelnen Wert haben. --Borstel 09:33, 20. Mär. 2009 (CET)

Initialisierung[Bearbeiten]

Zitat:

Eine bedingte Zuweisung (auch: ternärer Operator) kombiniert eine Abfrage mit einer Zuweisung:

$wert = ($frage) ? $wahr : $falsch;

Wenn $frage wahr oder ein Äquivalent dazu ist, so wird der Variable $wert der Wert von $wahr zugewiesen, ansonsten der Wert von $falsch. Dabei können alle Variablen auch direkte Werte, Konstanten oder Ausdrücke sein. Diese Schreibweise ist für einfache Abfragen kompakter, als das Äquivalent über if-Abfragen:

if ($frage) //muss es hier nicht heißen if($frage == $wert) ?


{

 $wert = $wahr;

} else {

 $wert = $falsch;

}


Wie ist das mit initialisierten Variablen in if-Befehlen? gibt eine bereits initialisierte variable immer true zurück oder wie wird das von dem if befehl verarbeitet?

zur ersten Frage: Nein. $wert soll ja nur etwas zugewiesen werden. Warum sollte $wert ein Teil der Bedingung sein müssen?
zur zweiten Frage: Eine initialisierte Variable gibt ihren Wahrheitswert zurück, nicht immer true. Wenn die Zuweisung $foo = false lautet, ist natürlich if($foo) nicht erfüllt. --84.131.149.171 21:32, 1. Okt. 2009 (CEST)
ah, jetzt erkenne ich die logik. Ich dachte nämlich die variable $wert müsste mit dem wert der variable $frage übereinstimmen, erst dann würde ein neuer wert hinzugewiesen, es geht aber wohl nur ::darum ob der Wert in $frage true oder false ist... Zur "zweiten Antwort...:" Aber wie sieht es mit den verschiedenen Typen aus, beispielsweise einem Array. Ich frage deshalb weil ich ein Script ::gefunden habe, indem zuvor eine Variable den Typ array zugewiesen bekommt und damit initialisiert wurde und anschließend, und da gibt es keinen anderen code der für die frage relevant wäre, mit ::einer if-abfrage ganz genauso wie hier abgefragt wird. Natürlich wird die Variable nur nach einer Bedingung initialisiert sonst wäre die if-abfrage ja sinnlos:
if(bedingung) { $my_arr = array(); } if($my_arr) { //hier wird code ausgeführt }
das soll hier nicht ausarten denn die diskussion dient ja schließlich zur verbesserung des buches und dabei möchte ich dir ja auch liebend gerne helfen. Aber du siehst vielleicht dass es
noch interessant wäre zu erfahren was variablen lediglich nach typ ganz ohne andere befehle zurückgeben. ich weiß nämlich sehr wohl dass es befehle gibt die je nach typ true oder false zurückgeben... Beispielsweise könnte es ja sein, dass jede variable die wenigstens schonmal definiert wurde bereits true zurückgibt, oder erst mit beinhaltetem wert oder ähnliches. das alles ist irgendwie unklar oder?
--florianwild, 13:09, 02. Okt. 2009
Das ist nicht mein Buch und ich kann faktisch auch kein PHP. Mir ist nicht gelungen, dem Buch zu entnehmen, was bei PHP als false gilt. Es ist mit Sicherheit kein brauchbares Buch. Blick in die Referenz verrät, was alles false ist: http://de3.php.net/manual/de/language.types.boolean.php#language.types.boolean.casting . Was dein Code-Stück angeht: Egal ob (das vorher irgendwo deklarierte) $my_arr mit $my_arr = array(); initialisiert wurde oder nicht, ist $my_arr false. Denn nicht-initialisierte Variablen haben autom. den Wert NULL und leere Arrays, also z.B. initialisiert mit = array();, sind ebenfalls false. Wenn natürlich zw. deinen beiden ifs das Array gefüllt wird, wäre $my_arr am Schluss true. --84.131.149.165 14:32, 2. Okt. 2009 (CEST)::
ah, ok, das macht sinn! danke für die hilfe, das kann man ja ins buch miteinfügen, wäre auf jeden fall wichtig zu erwähnen und würde die qualität des buchs steigern.
--florianwild, 14:38, 02. Okt. 2009