如何缩短这个资产价值检查?
How to shorten this isset value check?
这是我的第一个 post。我希望我做对了。我写了这段代码,它检查一些请求参数。有谁知道如何以更短且性能更好的方式编写此代码?
$request = $_REQUEST;
if ( isset($request['customerId']) &&
! $request['customerId'] == '' &&
isset($request['subscriptionId']) &&
! $request['subscriptionId'] == '' &&
isset($request['customer_ext_uid']) &&
! $request['customer_ext_uid'] == '' &&
isset($request['referrer']) &&
! $request['referrer'] == '' &&
$request['referrer'] == 'fastbill' ||
$request['referrer'] == 'paypal' &&
$request['do'] == 'success' &&
$request['do'] == 'success' ) :
echo "good";
else :
echo "bad";
endif;
最终成功URL应该是这样的:
提前致谢!
在客户端只需在隐藏字段中创建一个新变量并发送此参数进行检查。
一种方法可能是这样,它也会让将来添加更多检查和/或重用它变得更容易。
$required = array('customerID','subscriptionId'); //Fill in the fields you want checked
$request = $_REQUEST;
function allOk($required,$request){
foreach($required as $key){
if(empty($request[$key])){
return FALSE;
die();
}
}
if($request['do'] != 'success' || ($request['referrer'] != 'fastbill' && $request['referrer'] != 'paypal')){
return FALSE;
die();
}
return TRUE;
}
然后您可以使用 if 语句或三元运算符,具体取决于您希望根据结果执行多少操作。
if(allOk($required,$request)){
echo "good!";
}else{
echo "BAD!";
}
三元运算符:
echo (allOk($required,$request)) ? 'good' : 'bad' ;
这是我的第一个 post。我希望我做对了。我写了这段代码,它检查一些请求参数。有谁知道如何以更短且性能更好的方式编写此代码?
$request = $_REQUEST;
if ( isset($request['customerId']) &&
! $request['customerId'] == '' &&
isset($request['subscriptionId']) &&
! $request['subscriptionId'] == '' &&
isset($request['customer_ext_uid']) &&
! $request['customer_ext_uid'] == '' &&
isset($request['referrer']) &&
! $request['referrer'] == '' &&
$request['referrer'] == 'fastbill' ||
$request['referrer'] == 'paypal' &&
$request['do'] == 'success' &&
$request['do'] == 'success' ) :
echo "good";
else :
echo "bad";
endif;
最终成功URL应该是这样的:
提前致谢!
在客户端只需在隐藏字段中创建一个新变量并发送此参数进行检查。
一种方法可能是这样,它也会让将来添加更多检查和/或重用它变得更容易。
$required = array('customerID','subscriptionId'); //Fill in the fields you want checked
$request = $_REQUEST;
function allOk($required,$request){
foreach($required as $key){
if(empty($request[$key])){
return FALSE;
die();
}
}
if($request['do'] != 'success' || ($request['referrer'] != 'fastbill' && $request['referrer'] != 'paypal')){
return FALSE;
die();
}
return TRUE;
}
然后您可以使用 if 语句或三元运算符,具体取决于您希望根据结果执行多少操作。
if(allOk($required,$request)){
echo "good!";
}else{
echo "BAD!";
}
三元运算符:
echo (allOk($required,$request)) ? 'good' : 'bad' ;