php - 在 PHP 7 中使用空合并运算符时,我可以用一些附加函数包装输入字段吗?

标签 php php-7

假设我有一个简单的例子:

$foo = $_REQUEST['foo'] ?? '';

这工作得很好,并且在未设置时不会抛出未定义索引 foo 的通知。凉爽的。假设它已设置 - 我想用其他方法包装它,例如 trimstrtolower

$foo = strtolower(trim($_REQUEST['foo'])) ?? '';

我可以这样做吗?我会得到相同的结果吗? foo 存在时会被修剪并小写吗?

最佳答案

您的编写方式将导致 undefined index 。

由于 strtolower 和 trim 不会对空字符串进行任何调整,因此您可以执行:

$foo = strtolower(trim($_REQUEST['foo'] ?? ''));

对trim参数执行合并将防止trim函数评估未定义的$_REQUEST索引。

关于php - 在 PHP 7 中使用空合并运算符时,我可以用一些附加函数包装输入字段吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46922362/

相关文章:

php - PHP 7 接口(interface)中的静态返回类型

php - php中的字符串类型大小写,是字符串还是字符串?

javascript - 如何将表类应用到 AJAX 响应表

php - 如何比较两个数据库之间的 mysql 表并有效地更新差异?

php - 获取文件扩展名

PHP 7,Symfony 3 : Fatal error 1 abstract method and must therefore be declared abstract or implement the remaining methods

php - 如果返回值混合使用什么类型的提示?

php从json向mysql插入数据运行速度太慢

c# - 如何使用 20 字节 key 进入 AES ECB 模式

php - 嵌套空合并运算符 (??) 如何在 PHP 中工作?需要执行流程的分步说明