Другие языки программирования и технологии

PHP foreach($this->arFields as $name=>$structure)

Есть функция (метод класса)

function receive($request)
{
$arr = array();
foreach($this->arFields as $name=>$structure)
{
if(isset($request[$name]))
{
$arr[$name] = trim($request[$name]);
}
}
return $arr;
}

При ее применении в качестве $request обычно передается $_POST. Никак не могу разобрать каким образом работает функция. Особенно смущает строка $this->arFields as $name=>$structure. Что означает значок => и откуда беруться $name и $structure это служебные переменные или откудато у меня передаются ) Правильно я понимаю, что $this это обращение к объекту класса? )

Заранее спасибо всем ответившим )
$this->asField это переменная, которая хранится за пределами этой функции, она общая на весь класс. Здесь она является массивом, который перебирают.

А перебирают следующим образом:
$name - становится ключом строки массива
$structure -становится значением строки массива

Пример:
$this->asField=array(
"key1"=>"value1",
"key2"=>"value2"
);

foreach($this->arFields as $name=>$structure){

print $name."=".$structure."";

}

Результат выполнения скрипта:
key1=value1
key2=value2
Серик Макеев
Серик Макеев
1 551
Лучший ответ
Антон Некрасов вот спасибо, теперь все на свои места встало )
Если честно в таком контексте похоже на бред.
$this->arFields это обращение к одному из свойств (переменной) внутри данного объекта.
arFields массив заданный ранее по нему осуществляется перебор.
в функцию receive также передается масив
$name непонятно что, какаято неопределённая локальная переменная
функцию писал какойто чайник, он передает из масива 1 переменную и создает для нее еще 1 массив ппц

Цикл foreach
Данный тип цикла предназначен специально для перебора всех элементов массива и
был добавлен только в четвертой версии языка PHP. Выглядит он следующим обра-
зом:
foreach(массив as $key=>$value)
команды;
Здесь команды циклически выполняются для каждого элемента массива, при этом оче-
редная пара ключ=>значение оказывается в переменных $key и $value.
Дима Лопухов
Дима Лопухов
83 191
Перменная $this это ссылка на экземпляр класса (объект) , в котром выполняется функция. $this -> arFields - это переменная $arFields в текущем объекте. В данном случае это массив. Цикл foreach перебирает массив сначала и до конца, попутно создавая переменные (в данном случае - $name и $structure), и присвая им значене текущего ключа массива и соотвествующего ему значения, при каждом проходе цикла значения этих переменных заменяются на новые. "=>" - это служебный оператор, используется только в foreach. Можно написать без него, типа foreach($arr as $var), тогда будет создаваться только перемнная со значением элемента массива.
Спрашивай тут такие вещи
И Красавчик Mahoune тебе обязательно ответит :)))
Igor Zboromirskiy
Igor Zboromirskiy
20 092
foreach перебирает поэлементно переменную класса $this->arFields, обрабатывая ее как ассоциативный массив, представляющий собой массив пар ключ => значение. Имя ключа записывается в переменную $name, значение соответственно в $structure.
ЗЫ. Не проще ли сделать
return array_map ('trim', $request);
?
Николай Орехов
Николай Орехов
13 017
дебелизм.. .
чтобы избавится от пробелов по бокам.. . во всех GET и POST.
и получить копию массива
Павел Ефремов
Павел Ефремов
8 501
Молодцы!! ! Куча умных голов!! !
А если с компьютерм на "ВЫ", то что и ответить нельзя?
Очень хотелось помочь!! ! СОРРИ!!!
Bekka Retov
Bekka Retov
2 248