php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.01.2011, 23:53  
Benutzer
 
Registriert seit: 29.09.2008
Beiträge: 40
PHP-Kenntnisse:
Fortgeschritten
skelle befindet sich auf einem aufstrebenden Ast
Standard Problem mit 0 "" und false

Hallo ich habe im Moment ein kl Problem beim Zugriff auf die Eigenschaften meiner Klasse...

Ich greife auf die Werte in meiner Klasse wie folgt zu:
PHP-Code:
function Admin($value "") {
                if(
$value=="")
                    return 
$this->admin;
                else {
                    
$this->admin $value;
                }            
            } 
das klappt soweit ganz gut... wenn ich allerding Werte wie 0 (also die Zahl) oder false setzen will dann macht die sache allerdings Probleme
da folgendes fehl schlägt:
PHP-Code:
$user->Admin(false
nicht den wert setzt sondern zurück gibt...
Wie kann ich dieses Problem am elegantesten umgehen?

Grüße
skelle ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.01.2011, 23:59  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

Prüfe auf Identität (===)
__________________
Frank ist offline   Mit Zitat antworten
Alt 21.01.2011, 00:00  
Gesperrt
 
Registriert seit: 03.12.2010
Beiträge: 860
PHP-Kenntnisse:
Anfänger
coola wird schon bald berühmt werden
Standard

Es gibt einen Unterschied zwischen == und ===.

Bei === werden Werte und Typen verglichen, bei == nur die Werte.

Bei == versucht PHP immer, die Datentypen aufeinander abzustimmen. Einem "" entspricht dann plötzlich auch ein 0 oder ein false. Das ist dann plötzlich alles das gleiche.
coola ist offline   Mit Zitat antworten
Alt 21.01.2011, 00:00  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

Das hat nichts mit plötzlich zu tun, sondern mit dem dynamischen Typkonzept von PHP ^^
__________________
Frank ist offline   Mit Zitat antworten
Alt 21.01.2011, 00:01  
Benutzer
 
Registriert seit: 29.09.2008
Beiträge: 40
PHP-Kenntnisse:
Fortgeschritten
skelle befindet sich auf einem aufstrebenden Ast
Standard

ich bin eben auch schon über das === gestolpert... vielen für die schnelle Hilfe!
wünsche noch n schönen abend
skelle ist offline   Mit Zitat antworten
Alt 21.01.2011, 00:02  
Erfahrener Benutzer
 
Registriert seit: 04.08.2010
Beiträge: 287
PHP-Kenntnisse:
Fortgeschritten
zwutz wird schon bald berühmt werden
Standard

das sind jetzt aber wirklich absolute Grundlagen

PHP interessiert sich im Allgemeinen nicht für den Typ einer Variable, castet also munter hin und her, wenn es das für nötig hält. "", false, 0, null und array() sind für php gleich.
Wenn du nicht willst, dass gecastet wird, lass PHP auch den Typ vergleichen. Das geht mit dem dreifachen Gleichheitszeichen

siehe http://www.php.net/manual/en/languag...comparison.php
zwutz ist offline   Mit Zitat antworten
Alt 21.01.2011, 00:03  
Gesperrt
 
Registriert seit: 03.12.2010
Beiträge: 860
PHP-Kenntnisse:
Anfänger
coola wird schon bald berühmt werden
Standard

Was mach auch machen könnte:

PHP-Code:
function Admin($value "") { 
   if(!
is_string($value)) // Kontrolle Datentyp
      
throw new Exception('lalelu');
   ... 
Bzw. man verwendet Type-Hinting. Es gibt da eine spezielle PHP-Extension, die unterschiedlichste Klassen bereitstellt. Eine dieser Klassen nimmt man dann für Strings. Und diese String-Klasse kann man dann beim Parameter mit angeben. Wie man das beim Type-Hinting halt so macht. Extension: php_spl_types.dll. Konnte ich aber noch nicht ausprobieren. Mir fehlt noch die dll dazu.

Geändert von coola (21.01.2011 um 00:10 Uhr).
coola ist offline   Mit Zitat antworten
Antwort


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
Kleine Themplate Class Deltachaos PHP-Fortgeschrittene 8 22.01.2010 22:29
variable mit onclick an php drombusch PHP Tipps 2009 8 30.08.2009 14:45
[JavaScript] new Objekt => Wieder löschen Destruction JavaScript, Ajax und mehr 2 29.08.2009 16:23
Help! Felder dürfen nicht gleich sein proto PHP Tipps 2009 5 06.02.2009 11:55
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
Problem mit Ausgabe eines gifs für ein Captcha Canni HTML, Usability und Barrierefreiheit 5 15.07.2008 19:05
Problem: [Warning Empty delimiter] Lia PHP Tipps 2008 3 03.01.2008 23:21
Voraussetzungen für dieses Thumbnail Skript Plague PHP Tipps 2008 9 19.09.2007 13:35
datensätze defekt oder problem mit dem einlesen? Ministry Datenbanken 4 06.07.2006 18:42
== FALSE; == 0; Problem DDogg PHP Tipps 2006 10 05.06.2006 23:36
Vergleich mit false? Anotherone PHP Tipps 2006 3 17.04.2006 20:42
Problem mit Print() und Echo() Verarbeitung. silverghost PHP-Fortgeschrittene 4 28.02.2006 12:07
Problem beim auswerten von $_POST Schiedsrichter PHP Tipps 2004 2 15.10.2004 21:12
foreach problem mAy^daY PHP Tipps 2004 3 02.06.2004 20:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php != false problem, php 0 und false das gleiche?, php 0 und false unterscheiden, 0 von false unterscheiden php, php false und 0 unterscheiden, unterschied zwischen false und false php, unterschied zwischen false und 0 php, fehler false php, php false doesn\' work, php ist -1 false, admin:false

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:56 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