gpt4 book ai didi

php - 在 php 中替代 isset(user_input)

转载 作者:搜寻专家 更新时间:2023-10-31 21:04:32 24 4
gpt4 key购买 nike

我想知道除了(显而易见的选择)isset() 之外,是否还有另一种方法来检查来自用户输入的变量是否已设置且不为空。在某些情况下,我们可能不是使用 $_POST 来获取值,而是使用一些类似的自定义函数。 isset() 不能用于函数调用的结果,因此必须采用另一种方法来执行相同的检查。现在,isset() 验证两件事:

  1. 是否设置了值。
  2. 该值是否为空。但是,为变量分配空值 ($variable = NULL;) 与由于输入字段为空而获得空值之间存在一些差异。或者至少我是这样读的。

那么,有没有一种不使用 isset() 来检查这两个要求的好方法?

最佳答案

函数返回值的 isset($var) 等效于 func() === null

isset 基本上执行 !== null 比较,如果测试变量不存在则不会抛出错误。这不是函数返回值的问题,因为 a) 函数必须存在(否则 PHP 将退出并出现 fatal error )和 b) 函数总是返回一些东西,至少 null。所以您真正需要做的就是检查 null,不需要 isset

我在这里广泛地写过:The Definitive Guide To PHP's isset And empty .


除此之外,这取决于您要检查的具体内容:

  • 测试 key 是否通过 GET/POST 提交:isset($_POST['key'])
  • 测试是否有值以及它是否不是== false:!empty($_POST['key'])
  • 测试它是否为非空字符串:isset($_POST['key']) && strlen($_POST['key'])
  • 也许更复杂的验证:filter_input

关于php - 在 php 中替代 isset(user_input),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34873086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com