php - 使用空合并运算符时如何进行类型转换?

标签 php casting php-7 null-coalescing-operator

说我有这个:

$username = (string) $inputs['username'] ?? null;

$inputs['username']设置然后我希望它转换到 string .如果是 不是 然后设置 $username应该是 null .

但是,目前如果$inputs['username']未设置它将是一个空字符串而不是 null。

我怎样才能解决这个问题?或者这是故意的行为?

最佳答案

如果要在非 null 情况下返回的值与要测试的值相同,则只能使用 null-coalesce 运算符。但是在您的情况下,您想在返回时转换它。

因此需要使用常规条件运算符并显式测试该值。

$username = isset($input['username']) ? (string) $input['username'] : null;

关于php - 使用空合并运算符时如何进行类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50338510/

相关文章:

ios - 如何执行从 NSClassFromString 转换而来的类的类方法?

swift - 无法将类型 'Int64?' 的值转换为预期的参数类型 'Int'

php - PHP 中此类函数的名称是什么

php - 在 PHP 7 中安装模块

php - 使用 INNER JOIN、GROUP BY 和 Max 的 MySql 查询

php - 如何在 single.php 上的上一个/下一个导航中使用特色图像

php正则表达式反斜杠破折号

javascript - jQuery代码仅在第一个div点击时播放声音

java - 如何将变量转换为度数?

php - 如何在同一个 apache 服务器上为两个项目运行两个版本的 PHP