Sto provando a creare un file di costanti comune da condividere tra php e javascript, utilizzando JSON per memorizzare le costanti. Ma mi chiedo perché passare il JSON da PHP a javascript usando json_encode()
per echeggiare la dichiarazione di JSON.Passare PHP JSON a Javascript: echo json_encode vs echo json declaration
Diciamo che ho il PHP JSON
<?php
$json_obj = '{"const1": "val",
"const2": "val2"
}';
?>
Googling, sembra il tipico modo di passare di nuovo al javascript sta usando
<?php echo json_encode($json_obj); ?>
allora credo che avrei dovuto usare qualcosa come $.getScript()
leggere il file php per ottenere $json_obj
e quindi utilizzare parseJSON()
per renderlo utilizzabile in javascript.
Ma perché non invece
<?php echo 'var json = '.$json_obj; ?>
In questo modo tutto quello che dovete fare è caricare lo script direttamente e si ha la JSON pronto per l'uso direttamente.
C'è un motivo particolare per cui è più favorevole utilizzare json_encode()
quindi semplicemente echoing della dichiarazione su javascript?
Si utilizza 'json_encode' su array e gli oggetti, ciò che si c'è solo una stringa, non c'è bisogno di codificarla. – slash197
Cosa succede se la variabile che si desidera memorizzare i dati sul lato client cambia nome? Cosa succede se si desidera utilizzare gli stessi dati in più occasioni? Cosa succede se qualcosa è già memorizzato nella variabile globale 'json'? ... – Sirko
se si dispone di un array o anche di un oggetto, come l'oggetto stdClass, è più semplice utilizzare json_encode per eseguire il ciclo attraverso l'array/oggetto per stampare il contenuto. –