javascript - 如何提高可读性? (将 php vars 传递给外部文件中的 javascript)

标签 javascript php variables

我有以下代码:

<HTML>
    <?php
        if(isset($_GET['adjust'])){
            $adjust = true;
        }
        //More variabele declaring
    ?>
    <HEAD>
        <script type="text/javascript">
            var adjust = "<?php Print($adjust); ?>";
            //More variable 'transports'
        </script>
    </HEAD>
<!-- rest of the file -->

我想稍微清理一下,因为我有很多变量。这会影响文件的可读性和概览性。

我想过把它全部放到一个外部的 JavaScript 文件中,但似乎行不通。

<HTML>
    <?php
        if(isset($_GET['adjust'])){
            $adjust = true;
        }
        //More variabele declaring
    ?>
    <HEAD>
        <script type="text/javascript" src="externalJS.js"></script>
    </HEAD>
<!-- rest of the file -->

使用外部JS.js:

var adjust = "<?php Print($adjust); ?>";
//More variable 'transports'

根据 this question ,也在 stackoverflow 上询问过,这是不可能的。

既然回答了上述问题,有没有办法利用过去几年的知识来做到这一点? 是否有其他方法可以提高可读性?

P.S.:我认为值得一提的是我从 url、txt 文件和 cookie 中获取了我的 php 变量。

最佳答案

当我不得不将一些变量放入 javascript 中时,我使用了将所有这些项目加载到一个对象(或数组)中并将该数据输出到 javascript 中的对象/数组文字的方法.

例如:

<?php
$js_object = new stdClass();
$js_object->foo = 'some value';
$js_object->bar = 'some other value';
?>
<script type="text/javacript">;
var php_values = <?php echo json_encode($js_object); ?>;
console.log(php_values.foo);
console.log(php_values.bar);
</script>

这做了一些事情。

  1. 如果传递的变量需要更改,您的 JS 输出部分根本不需要更改。任何你想在 JS 中访问的东西只需要在对象通过 json_encode()
  2. 输出到浏览器之前加载到 $js_object
  3. 它将所有 PHP 提供的值放在 javascript 中一个整洁的对象/数组中,以便可以访问它们。
  4. 您可以通过这种方式轻松传递复杂的数据结构(嵌套数组、包含数组的对象、对象数组等)
  5. 如果需要,您可以在 javascript 中扩展对象以提供方法等来处理数据。

我还想说,您可能需要考虑一下是否要以这种方式传递 cookie 数据。 Cookie 数据无论如何都可用于 javascript,因此如果您需要更改值等,您可能希望直接使用该数据。

关于javascript - 如何提高可读性? (将 php vars 传递给外部文件中的 javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869082/

相关文章:

javascript - 替换 JavaScript 中的正则表达式匹配

php - 为什么mysql的结果总是得到正值?

php - 如何在PHP中按最大相同值对数组进行排序

Bash:文件路径中的变量

javascript - 打开电子邮件客户端并使用 PHP/JavaScript 提交表单

javascript - 网页无法正确加载: '"JSON"is undefined' error

php headers_sent 函数不工作

javascript - Jquery/JavaScript - 将 Ajax jSONP 响应存储到变量中

MYSQL If语句在事务中导致错误

javascript - AJAX POST 将数字作为字符串发送