Problme mit Typ Konvertierung
Problme mit Typ Konvertierung
am 03.08.2006 13:57:15 von Peter Sengelmann
Hi,
ich möchte ein Integer und ein String Wert miteinander vergleichen, ob
die String Repräsentation der Werte gleich oder ungleich ist, hierzu
konvertiere ich beide Wert nach String, nur funktioniert dieses leider
nicht, wer kann helfen??
Gebe ich die Werte aus oder ermittele die String Länge, sind diese auch
unterschiedlich, nur der Vergleich funktioniert trotz String
Konvertierung nicht.
$verg1 = 6; // Zahl 6
$verg2 = (string)'6.'; // String 6. (& mit einen Punkt dahinter)
if ((string)$verg1 <> (string)$verg2) {
echo 'Verg1: '.$verg1.'; Verg2: '.$verg2.' Ungleich';
} else {
echo 'Verg1: '.$verg1.'; Verg2: '.$verg2.' Gleich';
}
Ausgabe:
Verg1: 6; Verg2: 6. Gleich
Habe keine Idee mehr.
Gruß
Peter
Re: Problme mit Typ Konvertierung
am 03.08.2006 14:05:02 von Stefan Dreyer
Peter Sengelmann wrote:
> Hi,
>
> ich möchte ein Integer und ein String Wert miteinander vergleichen, ob
> die String Repräsentation der Werte gleich oder ungleich ist, hierzu
> konvertiere ich beide Wert nach String, nur funktioniert dieses leider
> nicht, wer kann helfen??
>
> Gebe ich die Werte aus oder ermittele die String Länge, sind diese auch
> unterschiedlich, nur der Vergleich funktioniert trotz String
> Konvertierung nicht.
>
> $verg1 = 6; // Zahl 6
> $verg2 = (string)'6.'; // String 6. (& mit einen Punkt dahinter)
>
> if ((string)$verg1 <> (string)$verg2) {
> echo 'Verg1: '.$verg1.'; Verg2: '.$verg2.' Ungleich';
> } else {
> echo 'Verg1: '.$verg1.'; Verg2: '.$verg2.' Gleich';
> }
>
> Ausgabe:
> Verg1: 6; Verg2: 6. Gleich
>
> Habe keine Idee mehr.
Ohne es ausprobiert zu haben, solltest Du in diesem Fall besser strcmp
nehmen.
Re: Problme mit Typ Konvertierung
am 03.08.2006 14:13:08 von Carsten Wiedmann
Peter Sengelmann schrieb:
> $verg1 = 6; // Zahl 6
> $verg2 = (string)'6.'; // String 6. (& mit einen Punkt dahinter)
>
> if ((string)$verg1 <> (string)$verg2) {
> echo 'Verg1: '.$verg1.'; Verg2: '.$verg2.' Ungleich';
> } else {
> echo 'Verg1: '.$verg1.'; Verg2: '.$verg2.' Gleich';
> }
>
> Ausgabe:
> Verg1: 6; Verg2: 6. Gleich
>
> Habe keine Idee mehr.
Das Manual [1] weis dazu:
| If you compare two numerical strings, they are compared as integers.
Gruß
Carsten
[1] http://de.php.net/manual/en/language.operators.comparison.ph p
Re: Problme mit Typ Konvertierung
am 03.08.2006 15:01:21 von Peter Sengelmann
Stefan Dreyer schrieb:
> Peter Sengelmann wrote:
>> Hi,
>>
>> ich möchte ein Integer und ein String Wert miteinander vergleichen, ob
>> die String Repräsentation der Werte gleich oder ungleich ist, hierzu
>> konvertiere ich beide Wert nach String, nur funktioniert dieses leider
>> nicht, wer kann helfen??
>>
>> Gebe ich die Werte aus oder ermittele die String Länge, sind diese
>> auch unterschiedlich, nur der Vergleich funktioniert trotz String
>> Konvertierung nicht.
>>
>> $verg1 = 6; // Zahl 6
>> $verg2 = (string)'6.'; // String 6. (& mit einen Punkt dahinter)
>>
>> if ((string)$verg1 <> (string)$verg2) {
>> echo 'Verg1: '.$verg1.'; Verg2: '.$verg2.' Ungleich';
>> } else {
>> echo 'Verg1: '.$verg1.'; Verg2: '.$verg2.' Gleich';
>> }
>>
>> Ausgabe:
>> Verg1: 6; Verg2: 6. Gleich
>>
>> Habe keine Idee mehr.
> Ohne es ausprobiert zu haben, solltest Du in diesem Fall besser strcmp
> nehmen.
Danke, funktioniert!