Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Hilfe bei einer einfachen Switch Anwendung [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Hilfe bei einer einfachen Switch Anwendung


 
Naturale1602
19-07-2009, 16:25 
 
Hi,

erstmal ich bin ein Anfänger und habe angefangen PHP zu lernen und hätte eine Frage:


<?php

$wert = '';

switch ($wert) {

case !empty($wert) :
echo $wert;
break;

default :
echo 'Standardwert';
break;

}


?>Ich würde gerne, dass der Text 'Standardwert' ausgegeben wird, wenn $wert leer ist.
Mit der If-Funktion klappt es, aber mit der switch irgendwie nicht...

Zweite Frage)

<?php

$wert = '0';

$feldwert= !empty($wert) ? $wert : 'Standardwert';

echo $feldwert;


?>Bei 0 wird nicht der Wert ausgegeben..sondern es wird als "false" angesehen!
Ist es möglich dass irgendwie mit dem ternären Operator zu umgehen oder geht das anders nicht?

Danke schonmal für die Hilfe, auch wenn es banale Fragen sind ^^.

Gruß

 
h3ll
19-07-2009, 16:35 
 
Hi,

erstmal ich bin ein Anfänger und habe angefangen PHP zu lernen und hätte eine Frage:


<?php

$wert = '';

switch ($wert) {

case !empty($wert) :
echo $wert;
break;

default :
echo 'Standardwert';
break;

}


?>Ich würde gerne, dass der Text 'Standardwert' ausgegeben wird, wenn $wert leer ist.
Mit der If-Funktion klappt es, aber mit der switch irgendwie nicht...

Wozu willst du hier Switch verwenden? Ist doch sinnlos.

Zweite Frage)

<?php

$wert = '0';

$feldwert= !empty($wert) ? $wert : 'Standardwert';

echo $feldwert;


?>Bei 0 wird nicht der Wert ausgegeben..sondern es wird als "false" angesehen!
Ist es möglich dass irgendwie mit dem ternären Operator zu umgehen oder geht das anders nicht?

empty() funktioniert nun mal so. Steht auch so im Handbuch:

PHP: empty - Manual (http://de.php.net/manual/en/function.empty.php)

 
wahsaga
19-07-2009, 16:46 
 
Bei 0 wird nicht der Wert ausgegeben..sondern es wird als "false" angesehen!
Ist es möglich dass irgendwie mit dem ternären Operator zu umgehen oder geht das anders nicht?
Du wirst noch eine zusätzliche Bedingung für diesen Fall hinzufügen müssen, unter Nutzung des Identitätsoperators ===.

$feldwert = (!empty($wert) || $wert === '0') ? $wert : 'Standardwert';

Dabei musst du dir natürlich im Klaren darüber sein, welcher Typ von Wert vorliegt - ob du wirklich den Textstring '0' meinst, oder die Zahl 0. Wenn du das beides erlauben willst, erfordert das auch noch mal eine Erweiterung der Bedingung.

 
Naturale1602
19-07-2009, 16:53 
 
Danke für die Hilfe.


Und ja ich weiß es ist sinnlos, dass man da switch nimmt, aber ich wollte es ja allgemein testen! Verschiedene Funktionen brauchen um etwas Routine zu bekommen.
Und ich habe mich gefragt wieso es bei der IF - Funktion klappt und bei der Switch Funktion nicht (da die beiden ja quasi identisch funktionieren im Prinzip).

 
h3ll
19-07-2009, 17:35 
 
Danke für die Hilfe.


Und ja ich weiß es ist sinnlos, dass man da switch nimmt, aber ich wollte es ja allgemein testen! Verschiedene Funktionen brauchen um etwas Routine zu bekommen.
Und ich habe mich gefragt wieso es bei der IF - Funktion klappt und bei der Switch Funktion nicht (da die beiden ja quasi identisch funktionieren im Prinzip).

Ok, wenn du willst:
$wert = '';

switch (empty($wert)) {
case false:
echo $wert;
break;
case true:
echo 'Standardwert';
break;
}

 
combie
19-07-2009, 19:09 
 
$wert = '';

switch (true)
{
case (!empty($wert)) : echo $wert; break;
default : echo 'Standardwert';
}
Solch einen Blödsinn kann man nur in PHP anstellen.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:27 Uhr.