Есть функция (метод класса)
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 это обращение к объекту класса? )
Заранее спасибо всем ответившим )
Другие языки программирования и технологии
PHP foreach($this->arFields as $name=>$structure)
$this->asField это переменная, которая хранится за пределами этой функции, она общая на весь класс. Здесь она является массивом, который перебирают.
А перебирают следующим образом:
$name - становится ключом строки массива
$structure -становится значением строки массива
Пример:
$this->asField=array(
"key1"=>"value1",
"key2"=>"value2"
);
foreach($this->arFields as $name=>$structure){
print $name."=".$structure."";
}
Результат выполнения скрипта:
key1=value1
key2=value2
А перебирают следующим образом:
$name - становится ключом строки массива
$structure -становится значением строки массива
Пример:
$this->asField=array(
"key1"=>"value1",
"key2"=>"value2"
);
foreach($this->arFields as $name=>$structure){
print $name."=".$structure."";
}
Результат выполнения скрипта:
key1=value1
key2=value2
Антон Некрасов
вот спасибо, теперь все на свои места встало )
Если честно в таком контексте похоже на бред.
$this->arFields это обращение к одному из свойств (переменной) внутри данного объекта.
arFields массив заданный ранее по нему осуществляется перебор.
в функцию receive также передается масив
$name непонятно что, какаято неопределённая локальная переменная
функцию писал какойто чайник, он передает из масива 1 переменную и создает для нее еще 1 массив ппц
Цикл foreach
Данный тип цикла предназначен специально для перебора всех элементов массива и
был добавлен только в четвертой версии языка PHP. Выглядит он следующим обра-
зом:
foreach(массив as $key=>$value)
команды;
Здесь команды циклически выполняются для каждого элемента массива, при этом оче-
редная пара ключ=>значение оказывается в переменных $key и $value.
$this->arFields это обращение к одному из свойств (переменной) внутри данного объекта.
arFields массив заданный ранее по нему осуществляется перебор.
в функцию receive также передается масив
$name непонятно что, какаято неопределённая локальная переменная
функцию писал какойто чайник, он передает из масива 1 переменную и создает для нее еще 1 массив ппц
Цикл foreach
Данный тип цикла предназначен специально для перебора всех элементов массива и
был добавлен только в четвертой версии языка PHP. Выглядит он следующим обра-
зом:
foreach(массив as $key=>$value)
команды;
Здесь команды циклически выполняются для каждого элемента массива, при этом оче-
редная пара ключ=>значение оказывается в переменных $key и $value.
Перменная $this это ссылка на экземпляр класса (объект) , в котром выполняется функция. $this -> arFields - это переменная $arFields в текущем объекте. В данном случае это массив. Цикл foreach перебирает массив сначала и до конца, попутно создавая переменные (в данном случае - $name и $structure), и присвая им значене текущего ключа массива и соотвествующего ему значения, при каждом проходе цикла значения этих переменных заменяются на новые. "=>" - это служебный оператор, используется только в foreach. Можно написать без него, типа foreach($arr as $var), тогда будет создаваться только перемнная со значением элемента массива.
Спрашивай тут такие вещи
И Красавчик Mahoune тебе обязательно ответит :)))
И Красавчик Mahoune тебе обязательно ответит :)))
foreach перебирает поэлементно переменную класса $this->arFields, обрабатывая ее как ассоциативный массив, представляющий собой массив пар ключ => значение. Имя ключа записывается в переменную $name, значение соответственно в $structure.
ЗЫ. Не проще ли сделать
return array_map ('trim', $request);
?
ЗЫ. Не проще ли сделать
return array_map ('trim', $request);
?
дебелизм.. .
чтобы избавится от пробелов по бокам.. . во всех GET и POST.
и получить копию массива
чтобы избавится от пробелов по бокам.. . во всех GET и POST.
и получить копию массива
Молодцы!! ! Куча умных голов!! !
А если с компьютерм на "ВЫ", то что и ответить нельзя?
Очень хотелось помочь!! ! СОРРИ!!!
А если с компьютерм на "ВЫ", то что и ответить нельзя?
Очень хотелось помочь!! ! СОРРИ!!!
Похожие вопросы
- что значит это this -> в c++
- Не понимаю принцип имплекации A->B или A=>B
- Как в foreach ($arr as $value) обратится к следующему элементу массива? PHP
- Какой цикл может продолжаться бесконечно долго for\foreach\while ? (PHP) И почему?
- Delphi:Прочитал, что если при динамическом создании компонента если указать Name объекта, то в последующем можно ->
- >>>__Если создавать полноценный, красивый сайт при помощи HTML, CSS, PHP, Фотошопа, и Дреамвьювера, этого хватит? __<<<
- Правда ли что закрывающий тэг для php "?>" не рекомендуется ставить в конце страницы?
- для чего применяется getline?? и что означает inf в проге? name я так понял имя файла а вот что за inf?
- С какого языка начинать изучения программирования Pascal/PHP/Python?
- SQL и PHP. Access denied for user 'u3464476869_vid'@'12.3.4.23' to database 'u3464476869_Hyp'