首页 > 解决方案 > 给定的 if 语句在 PHP 中是否正确?

问题描述

最近在 Symfony 中遇到了代码。有人可以帮我理解这个if说法吗?我以前从未见过这样的表情。

if (1 > $split_length = (int) $split_length) {
    trigger_error('The length of each segment must be greater than zero', E_USER_WARNING);
    return false;
}

标签: php

解决方案


为变量赋值也会返回赋值。如果你跑

echo $a = 5;

它将打印出 5,并将值 5 分配给变量 $a。

所以这部分

$split_length = (int) $split_length

将 $split_length 转换为 int 并返回分配的值。

如果返回值小于 1,则在比较中使用此返回值。如果添加一些(非必需)括号,它可能会变得更清晰:

if (   1 > ($split_length = (int) $split_length)   )

推荐阅读