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 に答える