|
Лабораторная работа 3. Разработка скриптов для генерации страниц
Число элементов массива: ".count($arr)." h2>";!
Выводит: Число элементов массива: 5
?>
Удаление массива и его элементов
Если вы хотите удалить массив целиком, воспользуйтесь функцией unset(). Если вы хотите удалить пару ключ/значение, вы также можете использовать функцию unset(). Приведем конкретные примеры:
$arr = array(5 => 1, 12 => 2);
$arr[] = 56; // В этом месте скрипта это
// эквивалентно $arr[13] = 56;
$arr["x"] = 42; // Это добавляет к массиву новый
unset($arr[5]); // Это удаляет элемент из массива
Некоторые особенности работы с массивами
Преобразование в массив (тип array)
Для любого из типов: integer, float, string, boolean и resource, если вы преобразуете значение в массив, вы получите массив с одним элементом (с индексом 0), являющимся скалярным значением, с которого вы начали.
Если вы преобразуете в массив объект (object), вы получите в качестве элементов массива свойства (переменные-члены) этого объекта. Ключами будут имена переменных-членов.
Если вы преобразуете в массив значение NULL, вы получите пустой массив.
Сравнение массивов
Массивы можно сравнивать при помощи функции array_diff() и операторов массивов:
Операторы,работающие с массивами:
Пример
Название
Результат
$a + $b
Объединение.
Объединение массива $a и массива $b.
$a == $b
Равенство.
TRUE в случае, если $a и $b содержат одни и те же элементы.
$a === $b
Тождественно равенство.
TRUE в случае, если $a и $b содержат одни и те же элементы в том же самом порядке.
$a != $b
Неравенство.
TRUE если массив $a не равен массиву $b.
$a <> $b
Неравенство.
TRUE если массив $a не равен массиву $b.
$a !== $b
Тождественно неравенство.
TRUE если массив $a не равен тождественно массиву $b.
Пример сравнения массивов:
$a = array("apple", "banana");
$b = array(1 => "banana", "0" => "apple");
var_dump($a == $b); // bool(true)
var_dump($a === $b); // bool(false)
?>
Некоторые полезные практические примеры по работе с массивами'
$a = array( 'color' => 'red',
'taste' => 'sweet',
'shape' => 'round',
'name' => 'apple',
4 // ключом будет 0
);
полностью соответствует
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name'] = ‘apple’;
$a[] = 4; // ключом будет 0
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
создаст массив array(0 => 'a' , 1 => 'b' , 2 => 'c')
,
или просто array('a', 'b', 'c')
?>
Еще один практический пример:
Массив как карта (свойств)
$map = array( 'version'
| => 4,
|
| 'OS'
| =>
| 'Linux',
|
| 'lang'
| => 'english'
| ,
|
|
'short_tags' => true
);
исключительно числовые ключи
$array = array( 7,
8,
0,
156,
-10
);
// это то же самое, что и array(0 => 7, 1 => 8, ...)
$switching = array( 10, // ключ = 0
=> 6,
=> 7,
'a' => 4,
11, // ключ = 6 (максимальным числовым индексом был 5)
'8' => 2, // ключ = 8 (число!)
'02' => 77, // ключ = '02'
=> 12 // значение 10 будет перезаписано на 12
);
пустой массив
$empty = array();
?>
Коллекция:
$colors = array('красный', 'синий', 'зеленый', 'желтый' );
foreach ($colors as $color) {
echo "Вам нравится $color?\n";
}
?>
Результат работы рассмотренного скрипта:
Вам нравится красный?
Вам нравится синий?
Вам нравится зеленый?
Вам нравится желтый?
Следующий пример создает начинающийся с единицы массив:
$firstquarter = array(1 => 'Январь', 'Февраль', 'Март' );
print_r($firstquarter);
?>
Результат работы приведенного скрипта будет следующий:
Array
(
=> 'Январь'
=> 'Февраль'
=> 'Март'
)
Пример заполнения массива:
заполняет массив всеми элементами директории
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
closedir($handle);
?>
Массивы упорядочены. Вы можете изменять порядок элементов, используя различные функции сортировки. Вы можете подсчитать количество элементов в массиве, используя функцию count().
Рекурсивные и многомерные массивы:
$fruits = array ( "фрукты" => array ( "a" => "апельсин" ,
"b" => "банан",
"c" => "яблоко"
),
"числа" => array ( 1,
2,3,
4,
5,
6
),
"дырки" => array ( "первая",
5 => "вторая",
"третья"
));
echo $fruits["дырки"][5]; echo $fruits["фрукты"]["a"]; unset($fruits["дырки"][0]);
напечатает "вторая"
напечатает "апельсин"
удалит "первая"
Создаст новый многомерный массив
$juices["яблоко"]["зеленое"] = "хорошее";
?>
Обратите внимание, что при присваивании массива всегда происходит копирование значения. Чтобы копировать массив по ссылке, вам нужно использовать оператор ссылки:
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 изменился,
$arr1 по прежнему array(2,3)
$arr3 = &$arr1;
$arr3[] = 4; // теперь $arr1 и $arr3 эквивалентны
?>
Объекты (Object)
Объект является одним из базовых понятий объектно-ориентированного программирования.
Объект представляет собой переменную, экземпляр которой создается по специальному шаблону, называемому классом. Концепции объектов и классов являются неотъемлемой частью парадигмы объектно-ориентированного программирования (ООП).
Объект - это совокупность данных (свойств) и функций (методов) для их обработки. Данные и методы называются членами класса. Вообще, объектом является все то, что поддерживает инкапсуляцию.
Внутренняя структура объекта похожа на хэш, за исключением того, что для доступа к отдельным элементам и функциям используется оператор ->, а не квадратные скобки.
Для инициализации объекта используется выражение new, создающее в переменной экземпляр объекта.
class foo
{
function do_foo()
{
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
Внутри объекта данные и код (члены класса) могут быть либо открыты, либо нет. Открытые данные и члены класса являются доступными для других частей программы, которые не являются частью объекта. А вот закрытые данные и члены класса доступны только внутри этого объекта.
Описание классов в PHP начинаются служебным словом class:
class Имя_класса {
}
Для объявления объекта необходимо использовать оператор new:
Объект = new Имя_класса;
Данные описываются с помощью служебного слова var. Метод описывается так же, как и обыкновенная функция. Методу также можно передавать параметры.
Пример класса на PHP:
Создаем новый класс Coor:
class Coor { var $name; var $addr;
function Name() {
echo " |
|
|