Оглавление
Функция print_r()
Функцияprint_r()
— выводит удобочитаемую информацию о переменной, принимает один аргумент, ту самую переменную, содержимое которой вы хотите проверить. При этом, чтобы отобразить все пробелы и переносы строк, нужно обернуть вывод print_r() в теги <pre>...</pre>
.
$array = [
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Октябрь',
'Ноябрь',
'Декабрь',
];
echo '<pre>';
print_r($array);
echo '</pre>';
Результат:
Array
(
[0] => Январь
[1] => Февраль
[2] => Март
[3] => Апрель
[4] => Май
[5] => Июнь
[6] => Июль
[7] => Август
[8] => Сентябрь
[9] => Октябрь
[10] => Ноябрь
[11] => Декабрь
)
Функция var_dump()
Делает то же самое что и
print_r()
, но дополнительно отображает информацию о типе и значении.
$array = [
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Октябрь',
'Ноябрь',
'Декабрь',
];
echo '<pre>';
var_dump($array);
echo '</pre>';
Результат:
array(12) {
[0]=>
string(12) "Январь"
[1]=>
string(14) "Февраль"
[2]=>
string(8) "Март"
[3]=>
string(12) "Апрель"
[4]=>
string(6) "Май"
[5]=>
string(8) "Июнь"
[6]=>
string(8) "Июль"
[7]=>
string(12) "Август"
[8]=>
string(16) "Сентябрь"
[9]=>
string(14) "Октябрь"
[10]=>
string(12) "Ноябрь"
[11]=>
string(14) "Декабрь"
}
Функция на основе print_r() и var_dump()
В своей работе я часто пользуюсь такой функцией, для удобства вывода информации о переменных:
/**
* обёртка для print_r() и var_dump()
* @param $val - значение
* @param string $name - заголовок
* @param bool $mode - использовать var_dump() или print_r()
* @param bool $die - использовать die() после вывода
*/
function print_p($val, $name = 'Содержимое переменной', $mode = false, $die = false)
{
echo '<pre>'.(!empty($name) ? $name.': ' : ''); if($mode) { var_dump($val); } else { print_r($val); } echo '</pre>';
if($die) die;
}
Позволяет выводить переменную с подписью (по умолчанию подпись «Содержимое переменной»), выводить просто или с указанием типов, а так же можно остановить дальнейшее выполнение кода. Очень удобно при отладке.
$array = [
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Октябрь',
'Ноябрь',
'Декабрь',
];
print_p($array, 'Месяцы года');
Результат:
Месяцы года: Array
(
[0] => Январь
[1] => Февраль
[2] => Март
[3] => Апрель
[4] => Май
[5] => Июнь
[6] => Июль
[7] => Август
[8] => Сентябрь
[9] => Октябрь
[10] => Ноябрь
[11] => Декабрь
)
Функция var_export()
Она возвращает строковое представление переменной, в виде полноценного php-кода
$array = [
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Октябрь',
'Ноябрь',
'Декабрь',
];
echo '<pre>';
var_export($array);
echo '</pre>';
Результат:
array (
0 => 'Январь',
1 => 'Февраль',
2 => 'Март',
3 => 'Апрель',
4 => 'Май',
5 => 'Июнь',
6 => 'Июль',
7 => 'Август',
8 => 'Сентябрь',
9 => 'Октябрь',
10 => 'Ноябрь',
11 => 'Декабрь',
)
Функция implode()
Эта функция предназначена для объединения элементов массива в строку. При этом для разделения элементов в строке, можно задать символ или набор символов, обычно это запятая или перенос строки. Для наглядности воспользуемся тегом<br/>
переноса строки.
$array = [
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Октябрь',
'Ноябрь',
'Декабрь',
];
$str = implode("<br/>", $array);
echo $str;
Результат:
Январь
Февраль
Март
Апрель
Май
Июнь
Июль
Август
Сентябрь
Октябрь
Ноябрь
Декабрь
Цикл foreach
Данный цикл создан для поэлементного перебора коллекции, он остановиться тогда, когда в массиве закончатся элементы. Это удобно в отличии от того же цикла for где нам нужно будет предварительно получить длину массива.
$array = [
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Октябрь',
'Ноябрь',
'Декабрь',
];
foreach ($array as $n => $row) {
echo ($n + 1) . '.' . $row; //Выведем номер элемента массива (не путать с индексом)
if ($n < count($array) - 1) {
echo "<br>\r\n";
}
}
Результат: 1.Январь
2.Февраль
3.Март
4.Апрель
5.Май
6.Июнь
7.Июль
8.Август
9.Сентябрь
10.Октябрь
11.Ноябрь
12.Декабрь
Цикл for
Работает примерно так же как и foreach, однако нам нужно передать количество итераций (длину массива), чтобы цикл знал когда остановиться.
$array = [
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Октябрь',
'Ноябрь',
'Декабрь',
];
for ($n = 0; $n <= count($array) -1; $n++) {
//Обращаемся к элементам массива по индексу $n
echo $n + 1 . '.' . $array[$n] . "<br>\r\n";
}
Результат такой же как и в прошлом примере1.Январь 2.Февраль 3.Март 4.Апрель 5.Май 6.Июнь 7.Июль 8.Август 9.Сентябрь 10.Октябрь 11.Ноябрь 12.Декабрь
Цикл while
$array = [
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Октябрь',
'Ноябрь',
'Декабрь',
];
$index = 0;
while ($index < count($array)) { //Цикл будет идти пока условие выполняется
echo $index + 1 . '.' . $array[$index] . "<br>\r\n";
$index++;
}
Результат тот же1.Январь
2.Февраль
3.Март
4.Апрель
5.Май
6.Июнь
7.Июль
8.Август
9.Сентябрь
10.Октябрь
11.Ноябрь
12.Декабрь
Функция array_map()
Совсем экзотический пример с функцией array_map(). Она вызовет callback-функцию для каждого элемента массива.
$array = [
'Январь',
'Февраль',
'Март',
'Апрель',
'Май',
'Июнь',
'Июль',
'Август',
'Сентябрь',
'Октябрь',
'Ноябрь',
'Декабрь',
];
//Наша callback-функция
function arrDisplay($n){
echo $n . '<br/>';
}
array_map('arrDisplay', $array);
Результат:Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь
Пользуйтесь примерами из статьи. Желаю удачи!