Autor |
Nachricht |
graphicsandunity
Threadersteller
Dabei seit: 22.11.2004
Ort: Berlin
Alter: 40
Geschlecht:
|
Verfasst Mi 08.12.2004 01:20
Titel if-Abfragen im Allgemeinen verstehen |
|
|
Hallo liebe MGI-Gemeinde,
mein Problem ist folgendes:
Ich sitze hier vor (momentan) php und versuche wieder einmal zu verstehen, wie so eine Scriptsprache mit einer if-Abfrage ohne expliziten Vergleich umgeht.
Hier ein Beispiel:
Code: |
<?php
if ($variable) {
anweisungen
}
?>
|
Wie ist das zu verstehen? Prüft eine Scriptsprache in diesem Fall einfach nur das Vorhandensein der Variablen oder prüft sie die Variable auf ihren Wert und führt die Anweisungen aus, wenn ein Wert vorhanden ist?
Und wie sieht es mit dem inversen Fall aus?
Also wenn ein Ausrufezeichen für die Negation davor steht.
Da wäre mir sehr geholfen. Ich hab hier schon in meinen php-Büchern nachgelesen aber die zeigen da immer nur Beispiel in obiger Form ohne zu erläutern, wie und was da passiert.
Eine Erklärung hab ich nicht gefunden. Hab auch schon im Netz gesucht und auch die nette Suche von hier genutzt.
Danke schon mal im Voraus
Gau
|
|
|
|
|
marcusm
Dabei seit: 06.05.2002
Ort: europa
Alter: 45
Geschlecht:
|
Verfasst Mi 08.12.2004 07:12
Titel Re: if-Abfragen im Allgemeinen verstehen |
|
|
Code: |
<?php
if ($variable) {
anweisungen
}
?>
|
Moin!
Das hast Du eigentlich richtig erkannt, bei Deinem Beispiel oben wird geprüft ob diese Variable registriert ist. Ist vielleicht das selbe in grün aber besser zu verstehen:
Code: |
<?php
if (isset($variable)) {
anweisungen
}
?>
|
Hat das selbe Ergebnis wie das obige Beispiel zur Folge. Wenn sich vor der Variablen ein Ausrufezeichen befindet wird die Anweisung nur dann ausgeführt wenn die Variable ---nicht--- registriert ist oder um es wieder anders zu schreiben:
Code: |
<?php
if (empty($variable)) {
anweisungen
}
?>
|
Hoffe ich hab hier in meinem morgendlichen Dämmerzustand alles richtig erklärt...
gruß
marcus
|
|
|
|
|
Anzeige
|
|
|
donnerchen
Dabei seit: 06.04.2003
Ort: -
Alter: 53
Geschlecht:
|
Verfasst Mi 08.12.2004 09:12
Titel
|
|
|
Nein, es wird nicht geprüft ob die Variable vorhanden ist! Wäre die Variable nicht vorhanden und es wären alle Fehlermeldungen eingeschaltet würde es sogar eine Warnung geben wenn man so überprüft ob eine Variable existiert.
In allen Sprachen die eine C-ähnliche Syntax haben kann man auf diesem Weg prüfen ob die Variable einen Wert enthält der false entspricht bzw. in false konvertierbar ist. D.h. die Werte false, null, 0 oder "" würden als false interpretiert und alles andere würde als true interpretiert.
Ein klein wenig deutlicher wäre die Abfrage vielleicht wenn man
if (true==$variable)
schreibt. PHP konvertiert dann den Inhalt von $variable implizit in einen Boole'schen Wert und vergleicht die beiden Seiten dann.
*wink*
|
|
|
|
|
Sarky
Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht:
|
Verfasst Mi 08.12.2004 09:17
Titel
|
|
|
marcusm, bitte verbreite kein gefährliches Halbwissen wenn Du es selbst nicht besser weißt!
So verwirrst Du Neulinge nur noch zusätzlich.
Einzig und allein so wie donnerchen es geschrieben hat ist es richtig!
|
|
|
|
|
marcusm
Dabei seit: 06.05.2002
Ort: europa
Alter: 45
Geschlecht:
|
Verfasst Mi 08.12.2004 10:18
Titel
|
|
|
Sarky hat geschrieben: | marcusm, bitte verbreite kein gefährliches Halbwissen wenn Du es selbst nicht besser weißt!
So verwirrst Du Neulinge nur noch zusätzlich.
Einzig und allein so wie donnerchen es geschrieben hat ist es richtig! |
Wenn ich gewußt hätte das es nicht ganz korrekt ist was ich postete, hätte ich sicherlich nicht eine falsche Erklärung gepostet oder?
Aber Ok, Danke für den Tipp...
|
|
|
|
|
graphicsandunity
Threadersteller
Dabei seit: 22.11.2004
Ort: Berlin
Alter: 40
Geschlecht:
|
Verfasst Mi 08.12.2004 13:23
Titel
|
|
|
donnerchen hat geschrieben: | In allen Sprachen die eine C-ähnliche Syntax haben kann man auf diesem Weg prüfen ob die Variable einen Wert enthält der false entspricht bzw. in false konvertierbar ist. D.h. die Werte false, null, 0 oder "" würden als false interpretiert und alles andere würde als true interpretiert.
|
Bezieht sich das auf die if-Bedingung:
Code: | if (! $variable) ... |
oder auf die Bedingung:
???
Grüße und Danke an alle
GaU
Zuletzt bearbeitet von graphicsandunity am Mi 08.12.2004 13:25, insgesamt 3-mal bearbeitet
|
|
|
|
|
angelone
Dabei seit: 29.08.2004
Ort: -
Alter: 43
Geschlecht:
|
Verfasst Mi 08.12.2004 13:42
Titel
|
|
|
das heisst einfach, dass die variable in der if abfrage da nur gecheckt wird, ob die true oder false ist.
Code: |
if (! $variable) ...
|
kann wahr sein oder auch nicht.
ist in der variable ne "0" hinterlegt isses wahr.
ist die variable ganz leer oder nicht registriert, isses auch wahr.
man muss einfach nur wissen, dass abfragen auf variablen ohne weitere angaben, nur gucken ob die variable true oder false ist.
und true ist die immer, wenn darin boolean TRUE, keine "0" oder sonstirgendwas steht.
|
|
|
|
|
kaputt
Dabei seit: 08.05.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 08.12.2004 14:08
Titel
|
|
|
donnerchen hat geschrieben: | Nein, es wird nicht geprüft ob die Variable vorhanden ist! Wäre die Variable nicht vorhanden und es wären alle Fehlermeldungen eingeschaltet würde es sogar eine Warnung geben wenn man so überprüft ob eine Variable existiert.
In allen Sprachen die eine C-ähnliche Syntax haben kann man auf diesem Weg prüfen ob die Variable einen Wert enthält der false entspricht bzw. in false konvertierbar ist. D.h. die Werte false, null, 0 oder "" würden als false interpretiert und alles andere würde als true interpretiert.
Ein klein wenig deutlicher wäre die Abfrage vielleicht wenn man
if (true==$variable)
schreibt. PHP konvertiert dann den Inhalt von $variable implizit in einen Boole'schen Wert und vergleicht die beiden Seiten dann.
*wink* |
Das geht nicht... wenn, dann:
if ($variable == true)
|
|
|
|
|
|
|
|
Ähnliche Themen |
Allgemeinen FTP-Server festlegen für Dreamweaver CS6
Anzeigenecken gestalten und verstehen
Kann der MAC confirm() verstehen??
IFrame und .asp verstehen sich nicht?
JS-Anfänger versucht Code zu verstehen
warum kann ich mootools nicht verstehen?
|
|