PHP如何调用自定义函数将页面名称传入公共header的title标签
多页面公共头部title动态填充实现方案
你现有代码的核心问题:
- 用
model::setnameisset()静态语法调用,但对应方法不是类静态方法,且传入的页面名称没有做持久存储,仅做了返回操作,调用时没有接收返回值,公共头部无法获取到传入的名称。
1. 修正model.php中的代码
新增静态属性存储页面名称,调整设置方法为静态方法,新增读取方法供公共头部调用:
class model { // 静态属性存储当前页面专属名称 private static $pageName = ''; // 设置页面名称的静态方法 public static function setnameisset($name) { self::$pageName = $name; } // 供公共头部调用获取页面名称 public static function getPageName() { // 未设置名称时返回默认站点名,可自行修改 return self::$pageName ?: '站点默认名称'; } }
2. 调整业务页面的加载顺序
必须保证先加载model类、先设置页面名称,再引入公共头部文件,顺序颠倒会导致取值失败:
// 引入model类文件 require_once 'path/to/model.php'; // 设置当前页面专属名称 model::setnameisset('home'); // 引入公共头部文件 require_once 'path/to/header.php';
3. 修改公共头部的title标签
直接在title标签内输出读取到的页面名称即可:
<!DOCTYPE html> <html lang="en"> <head> <base href="<?= URL ?>"> <meta charset="utf-8"> <!-- <meta http-equiv="Content-Type" content="text/html"> --> <title><?= model::getPageName() ?></title> </head>
补充说明:如果你的
setnameisset是定义在类外的普通函数,不能使用::的静态调用语法,建议按上述类静态方法的方式实现,可避免全局变量污染问题,逻辑更清晰。
内容的提问来源于stack exchange,提问作者hamin
相关产品推荐
相关产品推荐

