php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.09.2008, 12:19  
Erfahrener Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 297
martl666 befindet sich auf einem aufstrebenden Ast
Standard Problem mit If Anweisungen

Hallo,

ich hab ein grundsätzliches Problem mit dem verständnis von If Abfragen!!
Wenn ich dieses endlich klären könnte fällt es mir hoffentlich leichter manche sachen zu verstehen!

also hier mein beispiel:

PHP-Code:
<?
    $string 
"Ein langer String mit Inhalt";
    
$such "Ein";

    if (
strpos($string$such) != false) {
        echo 
'gefunden';
    } else {
        echo 
'nicht gefunden';
    }
?>
hier jetzt meine If abfrage! Jetzt komme ich zu meinem Problem!

es steht ja hier

PHP-Code:
if (strpos($string$such) !=false
aber es würde doch stehen

if (bla(bla) 1!=false) wenn ich das richtig sehe oder? Das würde
true ergeben und deswegen würde er hier in den else block
springen oder???

Würde hier false zurück kommen würde er in die if Anweisung
gehen??

Hab ich das richtig verstanden??
martl666 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.09.2008, 12:28  
Erfahrener Benutzer
 
Registriert seit: 26.05.2008
Beiträge: 200
PHP-Kenntnisse:
Fortgeschritten
[-UFO-]Melkor befindet sich auf einem aufstrebenden Ast
Standard

Erstmal würde ich folgendes Schreiben:
PHP-Code:
 if (strpos($string$such) !== false) { 
Da 'Ein' an erster Stelle von 'Ein langer String mit Inhalt' steht, wird 0 zurückgegeben. Diese 0 wir dann in den Boolean false umgewandelt.

!== Überprüft neben dem Wert der Variablen auch den Typen, also wenn 0 zurückgegeben wird, würde er dann in den if-Teil springen, bei false (nichts gefunden) in den else-Teil.
[-UFO-]Melkor ist offline  
Alt 12.09.2008, 12:28  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Das hast Du soweit richtig verstanden.
Allerdings sollte da besser
PHP-Code:
if (strpos($string$such)!==false
stehen, da strpos() 0 zurückgibt, wenn die gesuchte Zeichenkette ganz am Anfang der durchsuchten Zeichenkette steht. Also zum Beispiel strpos('abcdef','abc') -> 0
== und != wandeln die Operanden implizit um, wenn sich nicht vom gleichen Typ sind.
Und 0 wird in false umgewandelt, deshalb (0==false) -> true
=== und !== wandeln dagegen nicht den Typ um. Wenn die beiden Operanden nicht den gleichen Typ haben, ist das Ergebnis false. Deshalb (0===false) -> false.
Bei x==false spricht man daher von falsy bzw bei x==true von truthy.
David ist offline  
Alt 12.09.2008, 12:32  
Erfahrener Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 297
martl666 befindet sich auf einem aufstrebenden Ast
Standard

ok! Ich werd trotzdem noch ein wenig brauchen um es richtig in mich zu bekommen! Aber wenn jetzt das grunddenken richtig ist bin ich ja schonmal zufrieden! Danke für die ausführliche Erklärung!!!

DANKE
martl666 ist offline  
Alt 12.09.2008, 12:35  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Es gibt nur zwei "Grundformen" für if(), nämlich if(true) und if(false)
Alles, was Du in die Klammern schreibst, wird entweder zu true oder zu false ausgewertet.

$x===1, entweder $x ist 1->true oder es ist nicht 1->false
$x==true && $y==false, entweder ($x ist truthy und $y falsy)->true, oder ($x ist nicht truthy oder $y nicht falsy)->false
David ist offline  
Alt 12.09.2008, 14:24  
Erfahrener Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 297
martl666 befindet sich auf einem aufstrebenden Ast
Standard

Hier nochmal was!

das is die aufgabe!

PHP-Code:

$name="max"
<?php
    
if ($name == "max" OR "Müller" OR "Heinz") {
        echo 
"Hi Admin";
    }
    else {
        echo 
"Ich kenne dich nicht";
    }
?>
gibt jetzt immer richtig aus egal was ich für $name eingebe!

Jetzt die lösung von der Seite

PHP-Code:
<?php
    
if (("max"==$name) OR ("Müller"==$name) OR ("Heinz"==$name)) {
        echo 
"Hi Admin";
    }
    else {
        echo 
"Ich kenne dich nicht";
    }
?>
Und hier meine Lösung kann ich des genau so verwenden oder
würde es nicht wirklich richtig sein???

PHP-Code:
$name="max";

if (
$name == "max" XOR "Müller" XOR "Heinz")
    {
        echo 
"richtig";
    }
else
    {
        echo 
"falsch";    
    } 
jetzt wenn ich $name ändere wird mir auch falsch oder richtig
angezeigt!!!
Also sollte es doch richtig sein!
Was sagt ihr dazu?
martl666 ist offline  
Alt 12.09.2008, 14:43  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Es gibt keinen gleich-diesem-oder-jenem Operator in PHP.
Es gibt den Gleichheitsoperator und es gibt OR. Mit OR kannst Du zwei Gleichheitsoperationen verknüpfen.
$x==1 OR $x==2

Daher ergibt sich für Deine Codebeispiele:
Code:
$name = 'Schumacher';

if (("max"==$name) OR ("Müller"==$name) OR ("Heinz"==$name))
if ((false) or (false) or (false))
if (false)

if ($name == "max" OR "Müller" OR "Heinz")
if (($name == "max") OR ("Müller") OR ("Heinz"))
if ((false) OR (truthy) OR (truthy))
if ((false) OR (true) OR (true))
if (true)

if ($name == "max" XOR "Müller" XOR "Heinz")
if (($name == "max") XOR ("Müller") XOR ("Heinz"))
if ((false) XOR (truthy) XOR (truthy))
if ((false) XOR (true) XOR (true))
if ((true) XOR (true))
if (false)
David ist offline  
Alt 12.09.2008, 15:03  
Erfahrener Benutzer
 
Registriert seit: 04.09.2008
Beiträge: 297
martl666 befindet sich auf einem aufstrebenden Ast
Standard

hab noch eine kleine frage
zu dem wort empty

PHP-Code:
if (!empty($_POST[form_submit]) 
für was steht genau dieses empty?? Gibt es da etwas vergleichbares??
Es sind bestimmt verdammt blöde fragen aber irgendwie muss man es ja verstehen lernen und des geht nur über lesen und fragen (leider)!!!

Im Script ist es auch so!! Hab ich hier übersehen!! Danke

Geändert von martl666 (12.09.2008 um 15:19 Uhr).
martl666 ist offline  
Alt 12.09.2008, 15:12  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Was einzelne Funktionen oder Sprachkonstrukte machen kannst du immer im PHP-Manual nachlesen:
PHP: empty - Manual


Hinweis am Rande: Du solltest $_POST['form_submit'] schreiben, also mit Anführungszeichen, da PHP sonst (zunächst) davon ausgeht, dass form_submit eine Konstante ist...
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 13.09.2008, 14:06  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ein besonders wichtiges Kapitel im PHP Manual ist für Dich das Einführungskapitel.
Die meisten der obigen Fragen werden in den Themen
- Ausdrücke
- Kontrollstrukturen
- Operatoren
- Typen

abgehandelt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Galerie Problem... coraplanet PHP Tipps 2008 4 06.06.2008 13:42
Sessions Problem StephenKing PHP Tipps 2008 3 16.10.2007 08:30
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
problem!!! PHP Tipps 2006 6 08.02.2006 11:06
[Erledigt] wieder ein Problem bei phpmailer und smtp PHP Tipps 2006 24 07.02.2006 01:07
[Erledigt] Problem mit Übergabe einer Klasse in PHP4 PHP-Fortgeschrittene 10 08.01.2005 21:00
Problem mit Weiterleitung PHP Tipps 2004-2 16 22.12.2004 17:49
Smarty und PHP-Skript Problem PHP Tipps 2004-2 2 03.12.2004 22:27
[Erledigt] PHP Upload (Master Value/Local Value Problem) PHP-Fortgeschrittene 5 23.11.2004 07:21
[Erledigt] Problem mit if Anweisungen PHP Tipps 2004 2 21.10.2004 16:02
Problem mit alter JavaScript-Funktion woods PHP Tipps 2004 1 13.08.2004 13:34
[Erledigt] Problem mit Timestamp! PHP Tipps 2004 24 08.06.2004 19:51
Login Problem PHP Tipps 2004 4 04.06.2004 18:46
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php max anweisungen in if, if anweisungen false and true, php maximale if anweisungen, smarty if \xor\

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum