Próbuję utworzyć wspólny plik stałych do dzielenia się między php i javascript, używając JSON do przechowywania stałych. Ale zastanawiam się, dlaczego przekazać JSON z PHP do javascript przy użyciu json_encode()
przez echo deklaracji json.Przekazywanie PHP JSON do Javascript: echo json_encode vs echo json deklaracja
Powiedzmy mam PHP JSON
<?php
$json_obj = '{"const1": "val",
"const2": "val2"
}';
?>
Googling wydaje typowy sposób przechodząc z powrotem do javascript korzysta
<?php echo json_encode($json_obj); ?>
to uważam, że będę musiał użyć czegoś jak $.getScript()
aby odczytać plik php, aby uzyskać $json_obj
, a następnie użyć parseJSON()
, aby był on użyteczny w javascript.
Ale dlaczego nie zamiast
<?php echo 'var json = '.$json_obj; ?>
ten sposób wszystko, co musisz zrobić, to załadować skrypt bezpośrednio i masz json gotowe do użycia bezpośrednio.
Czy istnieje szczególny powód, dla którego bardziej korzystne jest użycie json_encode()
, a następnie po prostu echo deklaracji do javascript?
użyć 'json_encode' na tablic i obiektów, co czy istnieje tylko ciąg znaków, nie trzeba go kodować. – slash197
Co się stanie, jeśli zmienna, którą chcesz przechowywać swoje dane po stronie klienta, zmieni nazwę? A co jeśli chcesz używać tych samych danych przy wielu okazjach? Co jeśli coś już jest przechowywane w zmiennej globalnej 'json'? ... – Sirko
jeśli masz tablicę lub nawet obiekt, taki jak obiekt stdClass, łatwiej jest użyć json_encode, a następnie przepuścić przez tablicę/obiekt, aby wydrukować zawartość. –