我看过很多php代码,它们通过执行以下操作来检查字符串是否有效:

$ str是一个字符串变量。

if (!isset($str) || $str !== '') {
  // do something
}

我宁愿做
if (strlen($str) > 0) {
  // something
}

第二种方法有什么问题吗?我应该注意什么类型转换问题吗?

最佳答案

由于PHP将包含零('0')的字符串视为空,因此使empty()函数成为不适合的解决方案。
相反,测试该变量是否为,显式不等于空字符串:$stringvar !== ''OPGras Double等所示,还应检查变量的初始化,以避免出现警告或错误(取决于设置):isset($stringvar)这导致更可接受:

if (isset($stringvar) && $stringvar !== '') {
}
PHP有很多不好的约定。我最初(超过9年前)使用empty()函数回答了此问题,如下所示。我早就放弃了PHP,但是由于这个答案每隔几年就会引起人们的反对和评论,所以我已经对其进行了更新。如果OP希望更改接受的答案,请这样做。
原始答案:

关于php - PHP检查字符串是否为空的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4531288/

10-14 14:54
查看更多