php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.09.2008, 17:12  
Neuer Benutzer
 
Registriert seit: 11.09.2008
Beiträge: 2
KMMOB befindet sich auf einem aufstrebenden Ast
Standard was macht diese Zeile

$suche = (mb_check_encoding($suche, "UTF-8")) ? $suche : utf8_encode($suche);

was ich nicht weis ist was bedeutet in dieser zeile das ? und der : ?

Danke für eure hilfe im vorraus!
KMMOB ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.09.2008, 18:17  
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

Hallo KMMOB,
was mb_check_encoding() macht kannst du im Manual ja leicht nachlesen: PHP: mb_check_encoding - Manual jedenfalls gibt es true oder false zurück.

Das was dir unklar ist nennt sich ternärer Operator und ist nur eine andere schreibweise für ein if.
Deine Zeile könnte man also auch so schreiben:
PHP-Code:
if(mb_check_encoding($suche"UTF-8"))
{
   
$suche $suche;
}
else
{
   
$suche utf8_encode($suche);

sieht jetzt nicht gerade sinnvoll aus, sollte aber das Prinzip erklären

Siche auch im Manual unter "ternary operator":
PHP: Comparison Operators - Manual
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 11.09.2008, 20:01  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von agrajag Beitrag anzeigen
... ist nur eine andere schreibweise für ein if.
Bei dieser Behauptung läuft es mir immer eiskalt den Rücken runter.

IF ist eine Kontrollstruktur. Diese kann an allen Stellen, wo eine Anweisung erlaubt ist, eingesetzt werden.

Der ternäre Operator ist wie der Name schon sagt, ein Operator und hat somit einen Ergebniswert. So ein Konstrukt kann überall verwendet werden, wo ein beliebiger Ausdruck erlaubt ist.

Das hier ist also erlaubt,

PHP-Code:
<?
echo "Es gibt hier $Anzahl". ($Anzahl "Autos" "Auto") . " auf dem Parkplatz";

MyFunc(isset($Var) ? $Var "NIX");
?>
während das hier nicht funktioniert.
PHP-Code:
<?
echo "Es gibt hier $Anzahl". (IF $Anzahl "Autos" } ELSE { "Auto" }) . " auf dem Parkplatz";

MyFunc(IF (isset($Var)) $Var ELSE "NIX");?>
Das ist nicht nur eine andere Schreibweise, sondern ein komplett anderes Sprachkonstrukt.

Aber ich wiederhole mich...
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 11.09.2008, 20:14  
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

Und was glaubst du was man eher versteht:
"Hey schau mal an, eigentlich kennst du das schon und weißt was da passiert"
vs.
"Also das ist was ganz neues und komplett anderes"


Aber ich versteh schon worauf du hinauswillst und du hast natürlich recht, dass ich das falsch formuliert habe.
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 12.09.2008, 09:34  
Neuer Benutzer
 
Registriert seit: 11.09.2008
Beiträge: 2
KMMOB befindet sich auf einem aufstrebenden Ast
Standard

ICh danke euch beiden für eure Antwort ihr habt mir sehr geholfen das zu verstehen!
KMMOB ist offline  
Alt 13.09.2008, 14:27  
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

Einem Anfänger würde ich den ternären Operator als bedingte Zuweisung, quasi als Kombination aus Zuweisung und IF verkaufen...
__________________
--
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] 'upload-Datei' Zeile für Zeile auslesen Felix PHP Tipps 2008 18 29.06.2008 02:55
Tabelle mit while nach 4 spalten zur nächsten zeile Supeede PHP Tipps 2008 6 10.05.2008 09:46
__LINE__: Falsche Zeile Jacks Rache PHP Tipps 2006 5 10.06.2006 20:20
Zeile einfügen tennessee Server, Hosting und Workstations 5 02.06.2006 21:05
[Erledigt] *.bak Datei Zeile für Zeile auslesen PHP Tipps 2006 5 09.03.2006 14:25
Am Ende jeder Zeile etwas einfügen lassen... PHP Tipps 2005-2 2 29.10.2005 05:56
problem mit einlesen: von zeile zu zeile Tic Rederon PHP Tipps 2005-2 4 18.08.2005 17:10
[Erledigt] Einzelne Zeile löschen PHP Tipps 2005-2 3 18.08.2005 14:03
[Erledigt] nächste Zeile einer Db auslesen? PHP Tipps 2005-2 7 01.08.2005 00:11
Dateisystem-löschen einer zeile Niedi PHP Tipps 2005 9 25.03.2005 13:36
[Erledigt] Jede 2. Zeile eine andere Farbe. Clan-Opa PHP Tipps 2004-2 1 26.11.2004 09:00
durchlauf,zeile für zeile + update Skazi Datenbanken 10 25.11.2004 13:59
[Erledigt] Problem mit einer Website PHP Tipps 2004 12 06.08.2004 10:34
[Erledigt] Funktion MAIL() funkt nicht PHP Tipps 2004 16 11.07.2004 17:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php ternärer operator isset, mb_check_encoding, mb_check_encoding($zeile, \'utf-8\')==false, php mb_check_encoding

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