gpt4 book ai didi

javascript - html/javascript/php : how do i use a "global variable"?

转载 作者:行者123 更新时间:2023-11-29 16:56:36 25 4
gpt4 key购买 nike

所以我的域名将从在我的计算机 (localhost) 上构建它更改为我实际部署它时的域名,我不想返回并不得不在一百万次更改它地方。现在我知道我可以在 php 中做一个超全局变量

<?php echo $GLOBALS['domain_name']; ?>

但据我所知,您不能在单独的 .js 文件中使用它。如何为我的域名创建一个可以在 html 和 js 中使用的“全局变量”?

最佳答案

在索引文件的头部打印(或在 php 中包含在标题标签中)

任何 js 文件都可以使用在其上方相同范围级别中定义的变量,即使在其他文件中也是如此。

http://www.w3schools.com/js/js_scope.asp

常见的形式是,在标记内部和任何其他调用之前,定义所有“全局”js 变量。

由于一些原因,强烈建议不要将 php 打印到 js 文件中,尽管我听说它是​​可能的,但如果您在多个地方需要它,请使用 php include:

<html>
<?php
// include any shared content, in this case i include entire <head> section
include('header.php');
?>
<body>

所以如果你在你的 php 索引文件的顶部有这样的东西,或者在你放在那里的包含中:

<script>
var baseUrl = "<?php echo $GLOBALS['domain_name']; ?>";
</script>

然后可以在该点之后的任何地方用作标准变量。


旁注:使用对象包装器

作为旁注,您可以将它包装在一个对象中并将该对象传递给其他文件,例如:

var AppData = {};
AppData.domain_name = "<?php echo $GLOBALS['domain_name']; ?>";
AppData.googleTrackerUID = "<?php echo $GLOBALS['gtrackerid']; ?>";
AppData.whatever = true;

fnct_from_earlier_point_or_elsewhere(AppData);

只有当你认为你可能需要传递任何其他设置,或者只是想为这种可能性构建时,这才是真正有用的(特别是如果可选参数,那么很容易制作可重用的函数来处理索引不存在的情况)

我更喜欢对象方法,但如果不需要,请不要过于复杂。


编辑

正如@Amadan 评论的那样,在 php 中创建 $AppData 数组/对象然后调用它会更容易:

var AppData = <?php echo json_encode($AppData); ?>;

此外,关于有人发帖省略“var”关键字,它通常是错误的形式,因为 var 不会阻止它成为全局的,并且某些浏览器 (IE) 存在一些问题

javascript var or not var, what's the difference?

关于javascript - html/javascript/php : how do i use a "global variable"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31933853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com