All*_*nde 168 php validation
由于PHP是一种动态语言,检查提供的字段是否为空的最佳方法是什么?
我想确保:
这是我到目前为止所得到的:
$question = trim($_POST['question']);
if ("" === "$question") {
// Handle error here
}
Run Code Online (Sandbox Code Playgroud)
必须有一种更简单的方法吗?
Mic*_*ren 268
// Function for basic field validation (present and neither empty nor only white space
function IsNullOrEmptyString($str){
return (!isset($str) || trim($str) === '');
}
Run Code Online (Sandbox Code Playgroud)
小智 106
老帖子,但有人可能需要它,因为我做;)
if (strlen($str) == 0){
do what ever
}
Run Code Online (Sandbox Code Playgroud)
替换$str
你的变量.
NULL
并且""
在使用时都返回0 strlen
.
kta*_*kta 29
使用PHP的empty()函数.以下事项被认为是空的
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请检查空功能
Ada*_*dal 19
如果我错了,我会谦卑地接受,但我在自己的测试结果中发现以下内容适用于测试字符串(0)""和NULL值变量:
if ( $question ) {
// Handle success here
}
Run Code Online (Sandbox Code Playgroud)
这也可以反过来测试成功如下:
if ( !$question ) {
// Handle error here
}
Run Code Online (Sandbox Code Playgroud)
注意trim()
函数的假阴性- 它在修剪之前执行一个转换为字符串,因此如果你传递一个空数组,它将返回例如"Array".这可能不是问题,取决于您处理数据的方式,但是使用您提供的代码,question[]
可以在POST数据中提供名为的字段,并且该字段看起来是非空字符串.相反,我会建议:
$question = $_POST['question'];
if (!is_string || ($question = trim($question))) {
// Handle error here
}
// If $question was a string, it will have been trimmed by this point
Run Code Online (Sandbox Code Playgroud)
到 2023 年,我建议使用空合并运算符。如果数组键不存在,这也将抑制错误。
if (trim($_POST['question'] ?? '') === '') {
// Handle error here
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
233483 次 |
最近记录: |