直接在 JavaScript 中輸出 PHP 變數時,若不加引號會導致 Uncaught ReferenceError: xxx is not defined,因為 JS 會將其視為變數名而非字串字面值。
$(document).ready(function(){
<?php $f = "'name'"; ?>
var t = <?php echo $f; ?>;
alert(t); // 輸出 'name'
})
$(document).ready(function(){
<?php $f = "name"; ?>
var t = "<?php echo $f; ?>";
alert(t); // 輸出 name
})
<script language="javascript"> var t = <?php echo '"sd"'; ?>; alert(t); // 輸出 sd </script>
'...' 或雙引號 "..." 包裹json_encode():var t = <?php echo json_encode($f); ?>; // 自動處理引號轉義、Unicode 編碼,最安全
// 錯誤:缺少引號 var t = <?php echo $f; ?>; // 若 $f = "sd",輸出變成 var t = sd; → sd is not defined