当我执行strpos时,PHP认为null是0

当我执行strpos时,PHP认为null是0,php,Php,当$position中的字符不存在时,PHP认为null为0 $statusentery=$\发布[状态]; $position=strpos$statusentry,,它执行了if循环?因为0在PHP中可能意味着false,$position在不存在时将为false。因此,您需要使用以下各项: if ($position === 0){ 在PHP中使用三等号验证比较的值是否具有相同的数据类型。在这里可以找到更多信息:因为0在PHP中可能意味着false,$position在不存在时将是fal

当$position中的字符不存在时,PHP认为null为0

$statusentery=$\发布[状态];
$position=strpos$statusentry,,它执行了if循环?

因为0在PHP中可能意味着false,$position在不存在时将为false。因此,您需要使用以下各项:

if ($position === 0){

在PHP中使用三等号验证比较的值是否具有相同的数据类型。在这里可以找到更多信息:

因为0在PHP中可能意味着false,$position在不存在时将是false。因此,您需要使用以下各项:

if ($position === 0){
在PHP中使用三等号验证比较的值是否具有相同的数据类型。更多信息可以在这里找到:

来自:

警告

因为strpos可能返回不存在的假子字符串或0子字符串 在字符串的开头,必须使用严格等效运算符和松散等效运算符 使用非常小心

要知道缺少子字符串,必须使用:

==错误

要知道子字符串存在于包括0在内的任何位置,需要 可以使用以下任一选项:

!==错误推荐

-1注:或大于任何负数

要知道子字符串位于字符串的开头,必须使用:

==0

要知道子字符串位于起始位置以外的任何位置,可以 可以使用以下任何一种:

建议使用0!=0注意:但不是!==0也等于FALSE!=虚假的不名誉被认为是高度混乱的

还请注意,无法将的值与返回的值进行比较 关于strpos。使用松散等效运算符==或!=它会回来的 不区分子字符串是否存在的结果 对位置。使用严格等价运算符===或!==信息技术 将始终返回false

因此,代码必须是:

$statusentery = $_POST[status];
$position = strpos($statusentery,"<");

if ($position === 0){
echo "Sorry, for security purposes we do not allow characters such as <";
exit;
}
发件人:

警告

因为strpos可能返回不存在的假子字符串或0子字符串 在字符串的开头,必须使用严格等效运算符和松散等效运算符 使用非常小心

要知道缺少子字符串,必须使用:

==错误

要知道子字符串存在于包括0在内的任何位置,需要 可以使用以下任一选项:

!==错误推荐

-1注:或大于任何负数

要知道子字符串位于字符串的开头,必须使用:

==0

要知道子字符串位于起始位置以外的任何位置,可以 可以使用以下任何一种:

建议使用0!=0注意:但不是!==0也等于FALSE!=虚假的不名誉被认为是高度混乱的

还请注意,无法将的值与返回的值进行比较 关于strpos。使用松散等效运算符==或!=它会回来的 不区分子字符串是否存在的结果 对位置。使用严格等价运算符===或!==信息技术 将始终返回false

因此,代码必须是:

$statusentery = $_POST[status];
$position = strpos($statusentery,"<");

if ($position === 0){
echo "Sorry, for security purposes we do not allow characters such as <";
exit;
}
警告:此函数可能返回布尔值FALSE,但也可能返回计算结果为FALSE的非布尔值。有关更多信息,请阅读布尔值部分。使用===运算符测试此函数的返回值。警告:此函数可能返回布尔值FALSE,但也可能返回计算结果为FALSE的非布尔值。有关更多信息,请阅读布尔值部分。使用===运算符测试此函数的返回值。