【问题标题】:How can I write a short-hand expression that validates an integer, and returns an integer or a null?如何编写验证整数并返回整数或空值的简写表达式?
【发布时间】:2020-06-03 21:51:11
【问题描述】:
我需要最终得到一个变量 $id,其中包含一个整数或一个 null 值。
目前我有这个:
$id = $_POST['id'];
$id = filter_var($id, FILTER_VALIDATE_INT); //false or integer
if (!$id)
$id = null;
有没有更简洁的方法来写这个?如果可能的话,我希望将 3 个语句合并为一行。
【问题讨论】:
标签:
php
php-7.2
code-readability
【解决方案1】:
其实有一个FILTER_NULL_ON_FAILURE:
$id = filter_var($_POST['id'], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);
【解决方案2】:
我认为您正在寻找类似:$id = $id ?: null;
编辑:
采用@treyBake 的建议,您的代码块可以使用以下代码变成一行:
$id = filter_var($_POST['id'], FILTER_VALIDATE_INT) ?: null;