Ho qualche strano problema con la funzione isset() in PHP. Lasciami mostrare ....php isset() su una variabile stringa usando una stringa come indice
<?php
$aTestArray = array(
'index' => array(
'index' => 'Główna'
),
'dodaj' => 'Dodaj ogłoszenie',
);
var_dump(isset($aTestArray['index']));
var_dump(isset($aTestArray['index']['index']));
var_dump(isset($aTestArray['dodaj']));
var_dump(isset($aTestArray['index']['none']));
var_dump(isset($aTestArray['index']['none']['none2']));
// This unexpectedly returns TRUE
var_dump(isset($aTestArray['dodaj']['none']));
var_dump(isset($aTestArray['dodaj']['none']['none2']));
?>
del var_dump tornerà:
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
Perché il sesto var_dump() Restituisce vero?
errato. Una delle migliori caratteristiche di PHP è che consente __di consentire chiavi stringa; '['none']' è un nome chiave valido. – Bojangles
+1 Buono anche per spiegare che l'uso di '[]' su una stringa tenta di accedere ai suoi caratteri come componenti dell'array. –
@JamWaffles Assolutamente! Ma questo è quando si lavora con array associativi. In questo caso, stiamo facendo qualcosa come "Dodaj ogłoszenie" ["none"] ', che non supporta le chiavi con nome. –