如何缩短此代码?例如,使用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);
修改:
我已经这样了,现在可以在三元代码中使用$ variable = $行吗?顺便说一下,我有一个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 : "-";
}
答案 0 :(得分: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
答案 1 :(得分:0)
$Email = is_null($Email) ? "-" : $Email;
你计算其余的
答案 2 :(得分:0)
我已经这样了,现在可以在三元代码中使用$ variable = $行吗? 顺便说一下,我有一个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 : "-";
}
答案 3 :(得分: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);
}