Javascript 在自动执行的js函数中获取php?

Javascript 在自动执行的js函数中获取php?,javascript,php,Javascript,Php,您有一个.js.php文件,并且希望用一些动态php控制变量填充一个自执行函数 能做到吗?应该避免吗 如果你有类似 (function(funkyFresh){ funkyFresh.someVar = 'this value is important for somebody'; })(); 其中“d”依赖于某些服务器端魔术,因此客户端可以根据其实例定制js。因此,上述函数将变为 (function(funkyFresh){ f

您有一个.js.php文件,并且希望用一些动态php控制变量填充一个自执行函数

能做到吗?应该避免吗

如果你有类似

(function(funkyFresh){
    funkyFresh.someVar = 'this value is important for somebody'; 
})();                       
其中“d”依赖于某些服务器端魔术,因此客户端可以根据其实例定制js。因此,上述函数将变为

(function(funkyFresh){
    funkyFresh.someVar = <?php echo 'this value works better for you' ?>;
})();
(函数(funkyFresh){
funkyFresh.someVar=;
})();

我想你可以为不同的人提供不同的功能/文件,但这能以任何形式工作吗?我在本地运行了一个快速测试,看起来我个人完全反对用php生成js。我更愿意执行ajax调用并返回json。如果我必须避免使用ajax,它将是这样的:

PHP:


尽你所能去做。有时候你可能需要在php代码前后加上引号,就像@JoseManuelAbarcaRodríguez所说的,引号是个问题。当PHP值返回字符串时,它将导致
var x=some_字符串,您需要
var x=“一些字符串”,因此您需要
var x=“”最优雅的解决方案是使用http请求异步查询服务器端魔法,并在收到响应时使用响应中的值。我发现我编辑器上的“美化器”在“这是个人偏好还是我应该担心用PHP生成代码?”?我正在使用WordPress API和Angular来呈现当前REST API不允许访问的配置选项。有一些事情需要担心-浏览器可能缓存JS,因此可能没有更新的变量。很难知道您是否正在生成有效的javascript。但主要是个人偏好——一般来说,代码不应该生成更多的代码。但是,我相信有一些有效的用途。无论如何,如果您要生成JS变量,我会确保使用
json_encode
来保护您自己,以免把事情搞砸:
funkyFresh=例如
<script>
    window.server_vars = <?php json_encode(["funkyFresh" => ["some_var" => "This value works better for you"]]); ?>;
</script>
<script type="text/javascript" src="/path/to/javascript.js"></script>
(function(funkyFresh){
    funkyFresh.someVar = window.server_vars.funkyFresh.some_var; 
})();