forum.rastrnet.ru

forum.rastrnet.ru (http://forum.rastrnet.ru/index.php)
-   Программируем (http://forum.rastrnet.ru/forumdisplay.php?f=35)
-   -   немного PHP (http://forum.rastrnet.ru/showthread.php?t=44236)

m`ax 15.06.2008 14:13

немного PHP
 
Кто знаком с PHP?
Как на нём создать массив объёктов и перебрать их в цикле?
Ну, например создать объект cat со свойствами name, height, weight
ещё объект dog с теми-же свойствами...
Потом всё в массив запихнуть и в цикле, например вывести свойства каждого...
Покажите пример (;

m`ax 15.06.2008 20:33

Если вдруг понадобится кому, ага...

Код:

<?
// В этом массиве будут храниться reference на объекты
$animals = array();

class animal{
        var $name, $height, $weight;

        // ф-я установки значений параметрам объекта
        function animal_set($name, $height, $weight)
        {
                $this->name = $name;
                $this->height = $height;
                $this->weight = $weight;
        }
}

// создаю объекты
$cat = new animal;
$dog = new animal;

// задаю свойства
$cat->animal_set("Мурзик", 15, 5);
$dog->animal_set("Шарик", 20, 45);

// пихаю в массив reference на объекты
$animals[] = &$cat;
$animals[] = &$dog;

// перебераю все элементы массива
foreach ( array_keys($animals) as $key )
{
        // получаю reference на текущий объект
        $current_animal = &$animals[$key];

        // а вот теперь перебор свойств объекта в цикле
        foreach ($current_animal as $property => $value)
        {
                print "<b>$property</b>: $value<br />";
        } 
};


m`ax 15.06.2008 20:44

Да, кстати, на ПХП 4 -- foreach не работает. Его там нет.
Тока на 5

Ратибор 16.06.2008 00:34

Цитата:

Сообщение от m`ax (Сообщение 644495)
Да, кстати, на ПХП 4 -- foreach не работает. Его там нет.
Тока на 5

Не правда ваша. В 4-ке foreach очень даже есть.

ООП, конечно, рулит, но именно в PHP можно было делать и не через классы, а через ассоциативные массивы:
Цитата:

// Массив как карта (свойств)
$map = array( 'version' => 4
, 'OS' => 'Linux'
, 'lang' => 'english'
, 'short_tags' => true
);


foreach ($property as $value => $map) {
echo "$property => $value\n";
}

m`ax 16.06.2008 02:08

Цитата:

Сообщение от Ratibor (Сообщение 644623)
Не правда ваша. В 4-ке foreach очень даже есть.

Я имел ввиду foreach для объектов


Текущее время: 02:47. Часовой пояс GMT +7.

Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot

Форум открыт в июле 2004 г.