php関数の必須伝達パラメータが存在するかどうかをチェックするインスタンスの詳細

1588 ワード

php関数の必須伝達パラメータが存在するかどうかをチェックするインスタンスの詳細
phpの実際のプログラミングでは、インタフェースは常にフロントエンドから伝達されたパラメータを受信します.そのうち、一部のパラメータは必須ではありません.一部のパラメータは必須です.「関数の必須パラメータが存在するかどうかを確認する」にはどうすればいいですか.この問題を解決するには、次の方法の例を参照してください.

/** 
 * @brief              
 * @param $params array             
 * @param array $mod array             
 * @param array $fields array                 
 * @return bool 
 * @throws Exception 
 */ 
private function checkParamsExists($params, $mod = [], $fields = []) 
{ 
  if (empty($params)) { 
    throw new \Exception(Error::ERROR_INVALID_PARAMETER_MSG . ',[checkParamsExists] the array of params is empty', Error::ERROR_INVALID_PARAMETER_CODE); 
  } 
  $params = is_array($params) ? $params : [$params]; 
 
  if ($fields) { 
    $fields = array_flip($fields); 
    $params = array_merge($params, $fields); 
  }  
 
  foreach ($mod as $mod_key => $mod_value) { 
    if (!array_key_exists($mod_value, $params)) { 
      throw new \Exception(Error::ERROR_INVALID_PARAMETER_MSG . ',[checkParamsExists]' . json_encode($params) . ' do not have key field(' . $mod_value . ')', Error::ERROR_INVALID_PARAMETER_CODE); 
    } 
  } 
  return true; 
} 

実際に適用する場合は、アプリケーションロジックの先頭で、このメソッドを直接呼び出せばよい.
注意:その中のエラーコードは私のカスタマイズしたエラーコードで、使用する時は必ずあなた自身に変えなければなりません.
以上はphp検査関数の必伝パラメータが存在するかどうかの実例の详细な解で、もし疑问があれば伝言あるいは当駅のコミュニティに行って交流して讨论して、読むことに感谢して、みんなを助けることができることを望んで、みんなの当駅に対する支持に感谢します!