mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 28.03.2024 22:53 Benutzername: Passwort: Auto-Login

Thema: if-Abfragen im Allgemeinen verstehen vom 08.12.2004


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Tipps & Tricks für Nonprint -> if-Abfragen im Allgemeinen verstehen
Seite: 1, 2  Weiter
Autor Nachricht
graphicsandunity
Threadersteller

Dabei seit: 22.11.2004
Ort: Berlin
Alter: 40
Geschlecht: Männlich
Verfasst Mi 08.12.2004 01:20
Titel

if-Abfragen im Allgemeinen verstehen

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
marcusm

Dabei seit: 06.05.2002
Ort: europa
Alter: 45
Geschlecht: Männlich
Verfasst Mi 08.12.2004 07:12
Titel

Re: if-Abfragen im Allgemeinen verstehen

Antworten mit Zitat Zum Seitenanfang

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
  View user's profile Private Nachricht senden
Anzeige
Anzeige
donnerchen

Dabei seit: 06.04.2003
Ort: -
Alter: 53
Geschlecht: Männlich
Verfasst Mi 08.12.2004 09:12
Titel

Antworten mit Zitat Zum Seitenanfang

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*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Sarky

Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht: Männlich
Verfasst Mi 08.12.2004 09:17
Titel

Antworten mit Zitat Zum Seitenanfang

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!
  View user's profile Private Nachricht senden
marcusm

Dabei seit: 06.05.2002
Ort: europa
Alter: 45
Geschlecht: Männlich
Verfasst Mi 08.12.2004 10:18
Titel

Antworten mit Zitat Zum Seitenanfang

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? *bäh*

Aber Ok, Danke für den Tipp...
  View user's profile Private Nachricht senden
graphicsandunity
Threadersteller

Dabei seit: 22.11.2004
Ort: Berlin
Alter: 40
Geschlecht: Männlich
Verfasst Mi 08.12.2004 13:23
Titel

Antworten mit Zitat Zum Seitenanfang

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:
Code:
if ($variable) ...

???

Grüße und Danke an alle
GaU


Zuletzt bearbeitet von graphicsandunity am Mi 08.12.2004 13:25, insgesamt 3-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
angelone

Dabei seit: 29.08.2004
Ort: -
Alter: 43
Geschlecht: Männlich
Verfasst Mi 08.12.2004 13:42
Titel

Antworten mit Zitat Zum Seitenanfang

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.
  View user's profile Private Nachricht senden
kaputt

Dabei seit: 08.05.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 08.12.2004 14:08
Titel

Antworten mit Zitat Zum Seitenanfang

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)
  View user's profile Private Nachricht senden
 
Ä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?
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Tipps & Tricks für Nonprint


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.