0

このようなさまざまなチェックのための多数のエコーステートメントを含むPHPファイルがあります。

if ($power != "1")
{
    echo "Please contact administrator for assistance.";
    exit;
}

if (!$uid)
{
    echo "You do not have permissions to change your status.";
    exit;
}

if (!$mybb->input['custom'])
{
    echo "You've not added any status to change";
    exit;
}

同様の CSS クラスを各 echo ステートメントに付与したいと考えています。これを試しました。

if ($power != "1")
{
    echo "<div class='class_name'>Please contact administrator for assistance.</div>";
    exit;
}

それは機能しますが、私のphpファイルには何十ものエコーがあり、すべてのエコーステートメントを編集したくありません。これを達成する簡単な方法はありますか?

4

5 に答える 5

2

メッセージの出力を処理する関数を定義できます。既存のコードを更新する必要がありますが、将来的には、関数を変更することで CSS クラス名または HTML 構造を簡単に変更できるようになります。

class Response
{
    public static function output($message, $className = 'class_name')
    {
        echo "<div class='" . htmlspecialchars($className) . "'>" . $message. "</div>";
        exit;
    }
}

使用法:

if ($power != "1")
{
    Response::output("Please contact administrator for assistance.");
}

クラス名をオーバーライドします。

Response::output("Please contact administrator for assistance.", "other_class");
于 2013-10-24T08:04:19.270 に答える
0

それぞれechoを固定変数名に変更してみてください。

if ($power != "1")
{
    $msg = "Please contact administrator for assistance.";
}

if (!$uid)
{
    $msg = "You do not have permissions to change your status.";
}

if (!$mybb->input['custom'])
{
    $msg = "You've not added any status to change";
}

次に、出力にスタイルを与える関数を作成します。

function stylizing($msg, $class="")
{
   if($class != "")
       $msg = "<div class='{$class}'>{$msg}</div>";
   echo $msg;
}

次にstylizing($msg, "class_name");、結果を印刷したい場所を使用できます。

于 2013-10-24T08:03:18.050 に答える
0

このようなことを意味しますか?

$message = '';

if ($power != "1") $message .= "<div class='one'>Please contact administrator for assistance.</div>";
elseif (!$uid) $message .= "<div class='two'>You do not have permissions to change your status.</div>";
elseif (!$mybb->input['custom']) $message .= "<div class='three'>You've not added any status to change.</div>";

echo $message;
于 2013-10-24T08:03:19.270 に答える
0

css クラスを 1 回定義し、すべての echo ステートメントをその中に入れない限り、方法はありません。

<div class = "name">
<?php

echo ...
...
...
?>

</div>
于 2013-10-24T08:00:09.777 に答える