1

我在 Wordpress 安装中使用Serbanghita 的 PHP Mobile Detect类。我的 header.php 文件中有以下内容:

<?php
include 'php/Mobile_Detect.php';
$detect = new Mobile_Detect();
?>

当我将以下内容放在我的 single.php 文件中时,我收到一个关于非对象错误的调用:

<?php if ($detect->isMobile()) {
       //Do something
} ?>

有任何想法吗?我无法将包含移动到我的 single.php 文件中,因为我需要在 header.php 中使用它,当然我不能将它复制到 single.php 文件中,因为那时我正在重新声明该类。

任何帮助,非常感谢。

4

1 回答 1

1

$detect 变量在文件 single.php 的范围内不可用。

使用全局 $detect或首先通过调用$detect = new Mobile_Detect();定义 $detect

尽管如此,我还是应该警告你,污染全局范围很容易出现错误,并且强烈建议不要这样做。至少尽量减少全局变量的数量(例如,在类中包装功能?),使用唯一的名称(例如,为其添加前缀),或者更好地使用工厂类等高级技术。

于 2013-03-07T07:36:09.337 回答