配列の添え字について

<?php
$a = array(
    true => 'boolean',
    1    => 'integer',
    '1'  => 'string',
    1.0  => 'float',
);

echo $a[true]; //=> float
echo $a[1];    //=> float
echo $a['1'];  //=> float
echo $a[1.0];  //=> float

$a = array(
    true => 'boolean',
    1    => 'integer',
    '1'  => 'string',
    // 1.0  => 'float',
);

echo $a[true]; //=> string
echo $a[1];    //=> string
echo $a['1'];  //=> string
echo $a[1.0];  //=> string

$a = array(
    true => 'boolean',
    1    => 'integer',
    // '1'  => 'string',
    // 1.0  => 'float',
);  
    
echo $a[true]; //=> integer
echo $a[1];    //=> integer
echo $a['1'];  //=> integer
echo $a[1.0];  //=> integer

$a = array(
    true => 'boolean',
    // 1    => 'integer',
    // '1'  => 'string',
    // 1.0  => 'float',
);  
    
echo $a[true]; //=> boolean
echo $a[1];    //=> boolean
echo $a['1'];  //=> boolean
echo $a[1.0];  //=> boolean

普段困るような使い方ってのはぱっと思いつかないなぁ。

<?php
foreach (array_keys($a) as $key) var_dump($key);

みたいな事をするとどの場合でもint(1)となるので、当然の動作というわけみたいですね。