如何编写验证整数的简写表达式,以及 returns 整数或空值?

How can I write a short-hand expression that validates an integer, and returns an integer or a null?

我需要以一个包含整数或 null 值的变量 $id 结束。

目前我有这个:

$id = $_POST['id'];
$id = filter_var($id, FILTER_VALIDATE_INT); //false or integer
if (!$id)
    $id = null;

有没有更简洁的写法?如果可能的话,我希望将 3 个语句合并为一行。

我想你正在寻找类似的东西:$id = $id ?: null;

编辑: 采纳@treyBake 的建议,您的代码块可以使用以下代码变成一行: $id = filter_var($_POST['id'], FILTER_VALIDATE_INT) ?: null;

其实有一个FILTER_NULL_ON_FAILURE:

$id = filter_var($_POST['id'], FILTER_VALIDATE_INT, FILTER_NULL_ON_FAILURE);