猿问

如何键入循环遍历混合数组

鉴于此代码(https://psalm.dev/r/156e52eb66):


<?php


function keys(): array

{

  return ['foo', 'bar'];

}


// no lines above can be changed


foreach (keys() as $k) {

  echo gettype($k);

}

假设keys函数不在我们的控制之下(在不同的项目中)并且它有效地返回一个mixed( array<array-key, mixed>)数组,它会如何输入。


因此,人们只能改变循环及其周围。


甚至有可能吗?


UPD:我报告了https://github.com/vimeo/psalm/issues/2025


慕尼黑5688855
浏览 138回答 2
2回答

九州编程

如果我做对了,这可能会对您有所帮助:foreach (array_keys(keys()) as $k) {&nbsp;echo gettype(keys()[$k])."\n";}

倚天杖

您可以使用for循环而不是foreach循环来修复警告。$keys = keys();for( $i = 0; $i < count( $keys); $i++ ) {&nbsp; echo gettype( $keys[$i] );}这是 Psalm https://psalm.dev/r/20c1cbab73 中的链接
随时随地看视频慕课网APP
我要回答