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

Lio*_*ing 3 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 -->
Run Code Online (Sandbox Code Playgroud)

我想稍微清理一下,因为我有很多变量.这会损害文件的可读性和概述.

我想把它全部放到外部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 -->
Run Code Online (Sandbox Code Playgroud)

使用externalJS.js:

var adjust = "<?php Print($adjust); ?>";
//More variable 'transports'
Run Code Online (Sandbox Code Playgroud)

根据这个问题,这里也问过stackoverflow,这是不可能的.

有没有办法用过去几年的知识来做到这一点,因为上面的问题得到了解答?还有其他方法可以提高可读性吗?

PS:我认为值得一提的是我从url,txt文件和cookie中获取我的php变量.

Mik*_*ant 5

当我遇到需要将大量变量放入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>
Run Code Online (Sandbox Code Playgroud)

这做了一些事情.

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

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