首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 變數傳遞給 JavaScript 的正確姿勢:避免語法錯誤與編碼陷阱

     編輯:PHP 綜合知識

核心問題

直接在 JavaScript 中輸出 PHP 變數時,若不加引號會導致 Uncaught ReferenceError: xxx is not defined,因為 JS 會將其視為變數名而非字串字面值。

三種正確寫法

1. 雙重引號包裹(單引號在外,雙引號在內)

$(document).ready(function(){
    <?php $f = "'name'"; ?>
    var t = <?php echo $f; ?>;
    alert(t); // 輸出 'name'
})

2. JS 字串雙引號 + PHP 輸出不帶引號

$(document).ready(function(){
    <?php $f = "name"; ?>
    var t = "<?php echo $f; ?>";
    alert(t); // 輸出 name
})

3. 純 JS 區塊中輸出

<script language="javascript">
var t = <?php echo '"sd"'; ?>;
alert(t); // 輸出 sd
</script>

關鍵原則

  • 字串值必須在 JS 中成為合法字面值:需被單引號 '...' 或雙引號 "..." 包裹
  • PHP 輸出內容需包含引號,或由 JS 端補上引號
  • 若變數可能包含引號、換行等特殊字元,建議使用 json_encode():
var t = <?php echo json_encode($f); ?>;
// 自動處理引號轉義、Unicode 編碼,最安全

常見錯誤示範

// 錯誤:缺少引號
var t = <?php echo $f; ?>;
// 若 $f = "sd",輸出變成 var t = sd; → sd is not defined
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved