使用 Phpstan 获取数组键时如何避免 TypeError?

问题描述 投票:0回答:1
<?php 

/**
 * @return int[]
 */
function getIntArray(): array
{
    return [100, 200];
}

function setInt(int $value): void
{
    echo $value;
}

$intArray = getIntArray();
setInt($intArray[2]);

此代码将导致错误:

PHP Warning:  Undefined array key 2
PHP Fatal error:  Uncaught TypeError: setInt(): Argument #1 ($value) must be of type int, null given

但是 phpstan 没有显示错误: https://phpstan.org/r/ab7b85e4-2f96-4d6e-9ef7-20c99d5b163a

phpstan 中是否有某种设置可以捕获此错误?

php static-analysis phpstan
1个回答
0
投票

数组从 0 开始计数。您的

getIntArray()
函数返回一个包含两个值的数组。因此
$intArray[2]
返回
null

尝试

setInt($intArray[1]);

© www.soinside.com 2019 - 2024. All rights reserved.