$array = [
'color' => 'green',
'amount' => 10,
];
foreach ($array as $key => $value) {
// key => color, value => green
// $color = green
$$key = $value;
}
такой вот пример чтоб в итоге получить переменные с именем которое равно имени ключа
а значением которое равно значению)))
идем дальше
foreach ($array as $key => &$value){
// $model = 'BMW';
// $model1 = &$model;
// $model1 = 'Lexus';
// $value = &$array[$key];
// $value = 'asdasdasd';
// $key = 'color', &$value =>
$value = strtoupper($value);
// echo $array['color'] . '-' . $value;
}
вообще цикл форич перебирает копию массива
НО ТУТ ОН ПЕРЕБИВАЕТ ЯЧЕЙКИ ПАМЯТИ МАССИВА В КОТОРЫХ НАХОДЯТСЯ ПЕРЕМЕННЫЕ.такой пример интересный.
ВОт собственно говоря сегодня прошли рекурсивную функцию
$array = [1,2,3,[77,88,99,[111,222,333]]];
function printArray($array){
$result = '';
foreach ($array as $value) {
if (is_array($value))
{
$result .= printArray($value);
}
else
{
$result .= $value . '<br>';
}
}
return $result;
}
echo printArray($array);
вот она такая тут)
А вот вам пожалуйста и анонимная функция
$array = [1,2,3,4,5];
$cube = array_map(function($item){
return $item * $item;
}, $array);
так называемый коллбек(callback)
а вот мы сами написали функцию array_map
$array = [
'color' => 'red',
'count' => 10,
];
function my_array_map(callable $func, array $array)
{
$arr = [];
foreach ($array as $key => $value) {
$arr[$key] = $func($key, $value);
}
return $arr;
}
кроме того мы указали что передается в переменной $func именно функция
и именно второй передается массив!
function getArchiver($os, $archive_name)
{
echo $archive_name;
if ($os === 'windows')
{
return function(){
echo 'WINRAR';
};
}
else if ($os === 'linux')
{
return function($archive_name) use($archive_name) {
echo 'TAT.GZ';
echo $archive_name;
};
}
}
а тут мы показали как передавать функции переменные из
локальной области видимости другой функции)))
function getArchiver($os, $archive_name)
{
echo $archive_name;
if ($os === 'windows')
{
return function(){
echo 'WINRAR';
};
}
else if ($os === 'linux')
{
return function($archive_name) use($archive_name) {
echo 'TAT.GZ';
echo $archive_name;
};
}
}
вот такой вот урок был.буду домашку делать на выходных)
Комментариев нет:
Отправить комментарий