Axel Richter: (PHP) $_Get Probleme mit zweistelligen Werten

Beitrag lesen

Hallo,»» Hi,

$alliance= '50';

$alliance ist jetzt also ein String.

if(!isset($alliance['alliance_id'])) {

isset($alliance['alliance_id']) müßte also immer false sein ($alliance ist ja ein String, kein Hash.
Die Bedingung ist demnach IMMER wahr, die Abfrage damit sinnlos.

Nein, leider ist PHP nicht so strikt im Behandeln von Typen. Dass man einen String wie ein Array ansprechen kann, ist per Definition so.

Dass aber $myString["dummy"] == $myString[0] ist, war mir auch neu, ist aber offensichtlich so:

  
<?php  
header("Content-Type: text/html; charset=ISO-8859-1");  
$myString = "1234";  
echo $myString[0]."<br>";  
echo $myString[3]."<br>";  
  
echo "<hr>";  
  
echo $myString["dummy"]."<br>";  
  
echo "<hr>";  
  
echo var_dump($myString["dummy"])."<br>";  
echo var_dump($myString[0])."<br>";  
echo var_dump($myString["dummy"]==$myString[0])."<br>";  
  
echo "<hr>";  
  
echo var_dump(isset($myString[0]))."<br>";  
echo var_dump(isset($myString["dummy"]))."<br>";  
?>  

viele Grüße

Axel