0

このコードを短くするにはどうすればよいですか?たとえば、foreachを使用します。

    if($Email == NULL){
        $Email = "-";
    }
    elseif($Age == NULL){
        $Age = "-";
    }
    elseif($Sex == NULL){
        $Sex = "-";
    }

このように置き換える必要があります

$search = array("%UserID%", "%RegDate%", "%Name%", "%Email%", "%Age%", "%Gender%");
$replace = array($UserID, $RegDate, $Name, $Email, $Age, $Sex);
$content = str_replace($search, $replace, $content);

編集:

私はこれでこのようになりました。3値コードでも$variable= $ rowを使用することは可能ですか?ところで、私は3進コードを使用して定義するvariables.phpファイルを持っていて、すでにそこで試しましたが、以前に使用されていたため、機能せず、考えもしませんでした:P

しかし、この現在のコードは機能します。もっと短くできるかどうか疑問に思います。

while($row = mssql_fetch_assoc($accountinforesult)){
    $UserID = $row['UserID'];
    $RegDate = $row['RegDate'];
    $Name = $row['Name'];
    $Email = $row['Email'];
    $Age = $row['Age'];
    $Sex = $row['Sex'];

    $UserID = isset($UserID) ? $UserID : "-";
    $RegDate = isset($RegDate) ? $RegDate : "-";
    $Name = isset($Name) ? $Name : "-";
    $Email = isset($Email) ? $Email : "-";
    $Age = isset($Age) ? $Age : "-";
    $Sex = isset($Sex) ? $Sex : "-";
}
4

4 に答える 4

1

テストされていませんが、これでうまくいくと思います。

$vars = array('UserID', 'RegDate', 'Name', 'Email', 'Age', 'Sex');
foreach ($vars as $k => $v) {
    $$v = ($$v !== NULL) ? $$v : '-';
}

$$ vは、「$vという名前の変数」を意味します。$ v ='foo'の場合、$$vは$fooです。

「変数変数」を見てください:http://php.net/manual/en/language.variables.variable.php

于 2012-08-01T17:50:29.230 に答える
0
$Email = is_null($Email) ? "-" : $Email;

あなたは残りを理解します

于 2012-08-01T17:51:18.560 に答える
0

私はこれでこのようになりました。3値コードでも$variable= $ rowを使用することは可能ですか?ところで、私は3進コードを使用して定義するvariables.phpファイルを持っていて、すでにそこで試しましたが、以前に使用されていたため、機能せず、考えもしませんでした:P

しかし、この現在のコードは機能します。もっと短くできるかどうか疑問に思います。

while($row = mssql_fetch_assoc($accountinforesult)){
    $UserID = $row['UserID'];
    $RegDate = $row['RegDate'];
    $Name = $row['Name'];
    $Email = $row['Email'];
    $Age = $row['Age'];
    $Sex = $row['Sex'];

    $UserID = isset($UserID) ? $UserID : "-";
    $RegDate = isset($RegDate) ? $RegDate : "-";
    $Name = isset($Name) ? $Name : "-";
    $Email = isset($Email) ? $Email : "-";
    $Age = isset($Age) ? $Age : "-";
    $Sex = isset($Sex) ? $Sex : "-";
}
于 2012-08-01T17:51:31.553 に答える
0
$params = array(
  'Email' => $Email,
  'Age' => $Age,
  'Gender' => $Sex,
);

foreach($params as $paramName => $paramValue) {
  $paramValue = is_null($paramValue) ? '-' : $paramValue;
  //$paramValue = mysql_real_escape_string($paramValue); // or something like that...
  $content = str_replace('%'.$paramName.'%', $paramValue, $content);
}
于 2012-08-01T17:52:59.640 に答える