这种有条件的检查是否过度杀伤?

q09*_*987 4 php

$ result = validateUploadedFile($ _ FILES);

if (!empty($result) && !empty($result['valid']) && $result['valid'])
{
    // do sth
    // I don't know why sometime this three checks will cause me problems
    // In other words, even if $result['valid'] is TRUE, this scope will not be hit
}
Run Code Online (Sandbox Code Playgroud)

函数validateUploadedFile返回一个数组$ result ['valid'] == TRUE如果它通过.

这是一个问题,if语句检查得太多了吗?我可以简单地检查以下内容吗?我几乎没有PHP语言知识,也不知道这些检查是否必要.

if ( $result['valid'] )
{
    // do sth
}
Run Code Online (Sandbox Code Playgroud)

谢谢

function validateUploadedFile($uploadedFile)
{
    // Define file size limit
    $result = array('valid' => FALSE, 'error_message' => null, 'error_code' => null);

    if (sth_wrong)
    {
      $result['error_message'] = 'sth_wrong';
      return $result;    
    }

    if (sth_wrong2)
    {
      $result['error_message'] = 'sth_wrong2';
      return $result;    
    }    

    $result['valid'] = TRUE;
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

Ram*_*mon 10

这取决于在上载文件无效的情况下函数返回的内容.在大多数情况下,这应该足够了:

if (!empty($result['valid']))
Run Code Online (Sandbox Code Playgroud)

以来:

  • FALSEempty
  • NULL (或未设置的数组索引)是 empty
  • 它不会抱怨,即使$result是一个空数组

你也可以这样做

if (!$result['valid'])
Run Code Online (Sandbox Code Playgroud)

E_NOTICE如果没有设置该元素,这将给你.