我想知道是否有更有效的方式来编写以下内容;
if(isset($_POST['AddressLineOne'])){
if($_POST['AddressLineOne'] != ""){
$sAddressLineOne = $_POST['AddressLineOne'];
}else{
$sError .= "[AddressLineOne]";
}
}else{
$sError .= "[AddressLineOne]";
}
Run Code Online (Sandbox Code Playgroud)
我可以写一些类似于其他语言(java?)的东西,这会阻止If正在运行的语句中的第二个条件,如果第一个没有遇到?即;
if(isset($_POST['AddressLineOne']) && $_POST['AddressLineOne'] != "" ){
$sAddressLineOne = $_POST['AddressLineOne'];
}else{
$sError .= "[AddressLineOne]";
}
Run Code Online (Sandbox Code Playgroud)
我已经编写了下面的函数,但它并不总是适合使用它,或者需要更多的控制来检查.
function CalcRequiredFields($aRequiredFields, $aPostData){
$sError = "";
$error = false;
foreach($aRequiredFields as $field) {
if (empty($aPostData[$field])) {
$error = true;
$sError .= "[".$field."]" ;
$sError .= "[emptyFields]";
}
}
if($error){ return $sError; }else{ return ""; }
}
Run Code Online (Sandbox Code Playgroud)
你可以简单地分解
if(isset($_POST['AddressLineOne'])){
if($_POST['AddressLineOne'] != ""){
Run Code Online (Sandbox Code Playgroud)
只使用条件empty():
if(!empty($_POST['AddressLineOne'])){...}
Run Code Online (Sandbox Code Playgroud)
或使用三元运算符:
$var = !empty($_POST['var']) ? $_POST['var'] : "";
Run Code Online (Sandbox Code Playgroud)
您还可以将其用作isset():
$var = isset($_POST['var']) ? $_POST['var'] : "";
Run Code Online (Sandbox Code Playgroud)
参考文献: