<?
// callback функция для кода
function select($arr, $callback){foreach($arr as $value){
if($callback($value)) yield $value; }}
//Сам Код из учебника
$arr = [1, 2, 3, 4, 5, 6];
$select = select($arr,function($e){ return $e % 2 == 0 ? true : false; });
$collect = collect($select ,function($e){ return $e * $e; });
foreach($collect as $val) echo($val);
//Выводил помимо ещё этой функцией:
$echo = $select;
foreach ($echo as $value) {
echo "arr : ".$value , PHP_EOL;
echo "возврат с функцией : ".$echo->current(),PHP_EOL;
}
/*Стоит только выполнить ""Сам код из учебника"" выводит ошибку :
Fatal error: Uncaught Error: Call to undefined function collect() in C:\... Stack trace: #0 {main} thrown in C:\... on line .
Если в цикл foreach из ""Сам Код из учебника"" заменить на $select
результат будет : 2,4,6. то есть работает .
И с доп функцией : arr : 2 возврат с функцией : 2 arr : 4 возврат с функцией : 4 arr : 6 возврат с функцией : 6 тоже работает.
Ожидается что результат будет 4 16 36 */
?>
Обычно в книгах, когда говорят о каком-то коде, то он может быть раскидан по всей главе. Порой даже переходить из одной главы в другую. Нужно это, чтобы книга не разбухала от исходного кода. Порой примеры могут достигать 10 страниц одного только кода и каждый раз их перекопировать, чтобы включить одну строчку, это расточительно.
В данном случае у автора перед кодом стоит троеточие, значит там должен быть еще какой-то код перед началом. Я подозреваю, что вам также стоило включить функцию из начала подглавы "манипуляция с массивами". А общем да, иногда стоит искать ответы на соседних страницах.
<?php
## Обработка каждого элемента массива
function collect($arr, $callback){
foreach($arr as $value) (
yield $callback($value);
}
}
## Извлекаем только четные элементы
function select($arr, $callback){
foreach($arr as $value) {
if($callback($value)) yield $value;
}
}
...
По итогу, полный листинг должен выглядеть как-то так (весь код перекопирован из книги из одной подглавы):
<?php
## Обработка каждого элемента массива
function collect($arr, $callback){
foreach($arr as $value) {
yield $callback($value);
}
}
## Извлекаем только четные элементы
function select($arr, $callback){
foreach($arr as $value) {
if($callback($value)) yield $value;
}
}
## Извлекаем только нечетные элементы
function reject($arr, $callback) {
foreach($arr as $value){
if(!$callback($value)) yield $value;
}
}
## Пример 1
$arr = [1, 2, 3, 4, 5, 6];
$collect = collect($arr, function($e) { return $e * $e; });
foreach($collect as $val) echo "$val ";
## Пример 2
$arr = [1, 2, 3, 4, 5, 6];
$select = select($arr, function($e) { return $e % 2 == 0 ? true : false; });
foreach($select as $val) echo "$val ";
## Пример 3
$arr = [1, 2, 3, 4, 5, 6];
$reject = reject($arr, function($e){ return $e % 2 == 0 ? true : false; });
foreach($reject as $val) echo "$val ";
## Пример 4
$arr = [1, 2, 3, 4, 5, 6];
$select = select($arr, function($e){ return $e % 2 == 0 ? true : false; });
$collect= collect($select, function($e) {return $e * $e; });
foreach($collect as $val) echo "$val ";
?>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Из фронтенда решил перейти в бэкенд, подскажите пожалуйста, как происходит вывод данных выбранной категории, единственный момент который...
Пересмотрел кучу вопросов и попробовал кучу решений, но проблема все равно осталасьРасширение php-mysqlnd тоже установлено
Как указать в setcookie, что куки должны быть видны только с одной страницы сайта, если эта страница indexphp?