$ 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
}
函数validateUploadedFile返回一个数组$ result ['valid'] == TRUE如果它通过。
这是一个问题,if语句检查得太多了吗? 我可以简单地检查以下内容吗?我几乎没有PHP语言知识,也不知道这些检查是否必要。
if ( $result['valid'] )
{
// do sth
}
谢谢
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;
}
答案 0 :(得分:10)
这取决于上传文件无效时函数返回的内容。在大多数情况下,这应该足够了:
if (!empty($result['valid']))
自:
FALSE
是empty
NULL
(或未设置的数组索引)为empty
$result
是一个空数组您也可以这样做
if (!$result['valid'])
但如果未设置该元素,这将为您提供E_NOTICE
。
答案 1 :(得分:4)
我会想
if (isset($result['valid']) && $result['valid'])
会工作得很好。
答案 2 :(得分:2)
您的方法更多的是您应该使用原始用户输入执行的操作。但是,既然你正在处理一个函数,那么让它完成繁重工作会容易得多。
确保始终设置'valid'
键;您的代码将更具可读性和安全性。如果你这样做,if($result['valid'])
就足够了。
答案 3 :(得分:1)
你可以测试一下。在这种特殊情况下,您似乎并不完全确定要检查哪些值。在大多数情况下,根据逻辑,只需执行!$ result ['valid'] / should / work - 但假设PHP将null / unset值视为'false'。
制作一个快速脚本,分别测试所有条件。
继续。写一个脚本。测试它,并且知道。