У меня есть следующий код, и я не могу понять, что с ним не так. Я поставляю массив как аргумент, а is_array ($ primes) возвращает true. Что-нибудь мне здесь не хватает?Недопустимый аргумент, предоставленный foreach(), is_array() возвращает true
function generate_primes($max)
{
$i = 4;
$primes = [2, 3];
while($i < $max)
{
$isPrime = true;
foreach($primes as $value)
{
if($i % $value == 0)
{
$isPrime = false;
break;
}
}
if($isPrime)
$primes = $i;
$i++;
}
return $primes;
}
'$ штрихи = [2, 3]; 'недопустимо, используйте' $ primes = array (2, 3) ' – 2013-04-03 22:16:56
@Akam: Синтаксис коротких массивов действителен, если он использует PHP 5.4 или новее. Ссылки: [1] (http://php.net/manual/en/migration54.new-features.php), [2] (http://php.net/manual/en/language.types.array.php) – BigBagel
Это неверно; '$ primes = [2, 3];' поддерживается более новыми версиями PHP. –