[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужно ли обр. массив?
Гость_Марина
Добрый вечер. Посоветовали мне курс http://irbis-team.com/15, сказали лучше Попова.
Вот смотри, читаю. Не могу не как понять что делать эта функция.

Проверяем, если массив тогда делаем array_map("htmlChars", $data); Что это за замкнутый круг?

function htmlChars($data)
{
if(is_array($data))
$data = array_map("htmlChars", $data);
else
$data = htmlspecialchars($data);

return $data;
}




Спустя 3 минуты, 52 секунды (30.03.2010 - 15:49) ApuktaChehov написал(а):
ща объясню laugh.gif

Функция htmlChars принимает как просто переменную так и массив.
Если пришел вдруг массив, то функция array_map применяет к каждому элементу пришедшего массива функцию htmlChars(эту же). В этом случае, этой же функции(htmlChars) уже передается не массив, а один его элемент, т.е. переменная. И она(функция htmlChars) работает с ним как с переменной. Когда элементы массив кончаются, работа завершается.

А если htmlChars пришла просто переменная, то она ее обрабатывает htmlspecialchars($data);

Вот и все.

Спустя 1 минута, 55 секунд (30.03.2010 - 15:51) Guest написал(а):
Спасибки! Пошла дальше читать!

Спустя 5 минут, 23 секунды (30.03.2010 - 15:57) Guest написал(а):
Хм, взяла попробывала и опять не поняла.

Так ведь функция и так все обработывает все элементы:


$ran = array('hell\o','lov"e','ww@w','marin"x');

foreach ($ran as $number)
{
echo htmlspecialchars($number)."<br/>\n";
}
// на выходе все элементы в спецсимволах


hell\o<br/>
rad&quot;io<br/>
ww@w<br/>
ale&quot;x<br/>

Зачем тогда делать $data = array_map("htmlChars", $data);

Спустя 2 минуты, 55 секунд (30.03.2010 - 16:00) ApuktaChehov написал(а):
Ну так, у Вас кусок кода, а не функция, к тому же как это будет работать с обычной переменной?

А там целая функция, которой удобнее пользоваться, чем повсеместно вставлять foreach.

$data = array_map("htmlChars", $data);

делается только в том случае, если передается массив

Спустя 4 минуты, 57 секунд (30.03.2010 - 16:05) Guest написал(а):
Я просто имела ввиду что функция htmlspecialchars и так проходится по всем элементам массива. Зачем делать функцию:

function htmlChars($data)
{
if(is_array($data))
$data = array_map("htmlChars", $data);
else
$data = htmlspecialchars($data);

return $data;
}

Пример, есть массив:

$ran = array('hell\o','lov"e','ww@w','marin"x');

foreach ($ran as $number)
{
echo htmlspecialchars($number)."<br/>\n";
}
// на выходе все элементы в спецсимволах

Спустя 5 минут, 38 секунд (30.03.2010 - 16:10) ApuktaChehov написал(а):
Причем тут htmlspecialchars?
Это не она по массиву проходит, а foreach.

Читайте документацию

Спустя 36 минут, 28 секунд (30.03.2010 - 16:47) twin написал(а):
Эта функция может обработать многомерный массив. Такой к примеру
$ran = array(
array('hell\o','lov"e'),
array('ww@w','marin"x'),
);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.