PHP引入JS文件问题:添加数组元素后新JS未被加载
问题原因
你当前的代码逻辑顺序错误:当Index.php引入header.php时,header.php里的foreach循环会立刻执行并输出file01.js和file02.js的引用;之后你再往$import_scripts数组添加file03.js,此时循环已经执行完毕,新添加的文件自然不会被加载。
解决方案
下面提供两种可行的调整方式:
方案一:调整执行顺序,先扩展数组再输出引用
修改header.php,拆分数组初始化与输出逻辑
<head> <?php // 初始化默认脚本数组 $import_scripts = array( 'file01.js', 'file02.js' ); ?>
新建script_output.php负责输出脚本
<?php foreach ($import_scripts as $script) { echo '<script src="' . $script . '"></script>'; } ?> </head> <body>
修改Index.php的执行顺序
<?php // 先引入数组初始化部分 include('header.php'); // 添加新脚本 array_push($import_scripts, 'file03.js'); // 再引入输出部分 include('script_output.php'); ?>
方案二:用函数封装脚本管理逻辑(更灵活)
修改header.php,封装添加和输出函数
<head> <?php $import_scripts = array(); // 添加脚本的工具函数 function add_script($script_path) { global $import_scripts; $import_scripts[] = $script_path; } // 初始化默认脚本 add_script('file01.js'); add_script('file02.js'); // 输出所有脚本的函数 function output_scripts() { global $import_scripts; foreach ($import_scripts as $script) { echo '<script src="' . $script . '"></script>'; } } ?>
修改Index.php调用函数
<?php include('header.php'); // 添加新脚本 add_script('file03.js'); // 执行输出 output_scripts(); ?> </head> <body>
内容的提问来源于stack exchange,提问作者user19690494
相关产品推荐
相关产品推荐

