0

私はこの機能を持っています:

function my_function($value1, $value2, $value3 = null){
    if($value1 || $value2 || $value3 == 'my_title' ){
        echo '<title>'.$value2.'</title>';
    }
}

my_function('my_css', 'my_title');

ご覧のとおり、$value 1,2 または 3 のいずれかを使用できる方法がわからないため、echo $value2 を入力する必要がありました。これは、次のようなことを行うことで解決できると考えていました。

  if($value1 || $value2 || $value3 == 'my_title' $title = $value1 || $value2 || $value3 ){

これは可能ですか?

ここで達成しようとしていることを理解していただければ幸いです。

-------------------------------------------------- -- 解決済み ----------------------------------------------- ----------

この質問に対する最良の回答をしてくれた rohitarora に感謝します。

あなたが私を助けてくれたものをみんなと共有したいと思います。

この機能があれば

function template_content($value1, $value2, $value3 = null){ global $title;
$value = array($value1, $value2, $value3);
for($i=0;$i<count($value);$i++)
{
    if (strpos($value[$i],'title: ') === 0 ){
        $title = explode("title: ",$value[$i]);
        echo "\t", '<title>'.$title[1].'</title>', "\n";
    } else if (strpos($value[$i],'css: ') === 0 ){
        $css = explode("css: ",$value[$i]);
        echo "\t", '<link rel="stylesheet" href="'.$css[1].'">', "\n";
    } else if (strpos($value[$i],'js: ') === 0 ){
        $js = explode("js: ",$value[$i]);
        echo "\t", '<script src="'.$js[1].'"></script>', "\n";
    }
}

}

この関数を呼び出すことができます

<!DOCTYPE html>
<html>
<head>
<?php template_content('css: http://google.com/style.css', 'title: hello', 'js: http://code.jquery.com/jquery-latest.min.js'); ?>
</head>
<body>
</body>
</html> 

そして、あなたはこの驚くべき結果を得るでしょう

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="http://google.com/style.css">
    <title>hello</title>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
</body>
</html> 
4

4 に答える 4

2
$string = 'my_title';

switch ($string) {
     case $value1 :         $title = $value1;         break;
     case $value2 :         $title = $value2;         break;
     case $value3 :         $title = $value3;         break;
}

echo '<title>'.$title.'</title>';

これはあなたが必要とするものです:)

于 2013-02-06T09:24:57.357 に答える
1

ステートメント

if ($value1 || $value2 || $value3 == 'my_title') {
     // Some code
}

は、あなたが思うかもしれない結果を返しません:それは次のように評価されます:is (ブール値であると評価されます)または is 、または等しい場合いくつかのコードを実行します。$value1true $value2true $value3my_title

のいずれかを使用する場合$value1$value2または$value3に等しい場合my_titleは、次を使用します。

function my_function($value1, $value2, $value3 = null) {
    $searchStr = "my_title";
    $r = "";
    switch ($searchStr) {
        case $value1:
            $r = $value1;
            break;
        case $value2:
            $r = $value2;
            break;
        case $value3:
            $r = $value3;
            break;
    }
    echo '<title>'.$r.'</title>';
}

switchステートメントにアレルギーがある場合(まあ、実際にはそうすべきではありません!)、これを使用してください:

function my_function($value1, $value2, $value3 = null) {
    $searchStr = "my_title";
    $r = "";
    if ($value1 == $searchStr) {
        $r = $value1;
    }
    else if ($value2 == $searchStr) {
        $r = $value2;
    }
    else if ($value3 == $searchStr) {
        $r = $value3;
    }
    echo '<title>'.$r.'</title>';
}

関数を即座にエコーするよりも、関数の結果を返す方がよいことに注意してください。

于 2013-02-06T09:53:05.240 に答える
1
function my_function($value1, $value2, $value3 = null) {
    // make a array of all your values
    $title = array($value1, $value2, $value3);
    // for loop will run as the size of array like here there are three element in array value1,2,3
    for ($i = 0; $i < count($title); $i++)
    {
        // check if the string is there in the ith element in array
        if ($title[$i] == 'my_title')
        {
            echo '<title>'.$title[$i].'</title>';
        }
    }
}

my_function('my_css', 'my_title');

配列でそれを行う、それはより良い方法です。

于 2013-02-06T09:28:01.743 に答える
1
function my_function (){
    $args = func_get_args();

    foreach ($args as $arg){
        echo '<title>'.$arg.'</title>';
    }
}

my_function('my_css', 'my_title');

この関数は、指定した任意の数のパラメーターを受け取ることができ、タグ内のすべてのパラメーターを出力します

于 2013-02-06T09:41:46.770 に答える