Статические переменные класса в PHP | часть 2 | Базовый курс PHP-7

preview_player
Показать описание
Каждый объект обладает своим набором переменных, независимых от других объектов. Но также в PHP мы можем создавать статические (static) переменные прям внутри класса!

Статические переменные объявляются при помощи ключевого слова - static

ДОМАШНЕЕ ЗАДАНИЕ:
Рекомендации по теме
Комментарии
Автор

После 5-го просмотра все стало понятно)! Андрей, спасибо за этот курс!

lenyacicin
Автор

Нет слов на то какое хорошее дело вы делаете, я повторяю свои знания благодаря вам и узнаю новую инфу.

dunswwo
Автор

Огромное спасибо за ваш труд. Вы прирожденный преподаватель!

ivanfilatov
Автор

вы объясняете таким простым языком такие сложные вещи, спасибо вам за ваши старания

casper-tmbo
Автор

Сначала не понял в чем прикол, но потом посмотрев на очередность кода все встало на свои места. =)

sinsmith
Автор

хорошие уроки... молодец, продолжай...

K_Arm
Автор

Хорошо сказал =))-Обновляем страницу и получаем единицу!

mikaelgevorgyan
Автор

про саму static инфы мало надеюсь дальше будет понятней на примере, и это не беда Андрей дает возможность почитать и разобраться, а вот то что обьект при копировании просто ссылается на уже на сущ место в памяти, это бесценная инфа !!!!

Решил понять как можно было бы автоматизировать введение инфы в поля обьекта, забежал вперед почитал за методы и функции посмотрел пару видосиков и вышло то что вышлоЖ

class Animal

{
public static $classAnimal = '"Млекопитающие"';
public $typeAnimals;
public $colorAnimal;
public $speed;
public $advendcedLife;



public function setInfoAnimals($typeAnimals, $colorAnimal, $speed, $advendcedLife)
{
$this->typeAnimals = $typeAnimals;
$this->colorAnimal = $colorAnimal;
$this->speed = $speed;
$this->advendcedLife = $advendcedLife;
}



public function getAnimals($class)
{
echo "Животное $this->typeAnimals <br> Класс $class <br> Имеет $this->colorAnimal цвет <br>Развивает скорость $this->speed км.ч <br> Имеет среднюю продолжительность жизни $this->advendcedLife лет <br> <br>";
}
}

$class = Animal::$classAnimal;


$cat = new Animal();
$dog = new Animal();
$dolfin = new Animal();
$dog2 = $dog;

$cat->setInfoAnimals("Кот", "Черный", "48", "10");
$dog->setInfoAnimals("Собака", "Рыжая", "48", "12");
$dolfin->setInfoAnimals("Дельфин", "Волна", "56", "55");

$dog2->colorAnimal = 'Черній';
$dog2->speed = '68';



$cat->getAnimals($class);
echo "<br>";
$dog->getAnimals($class);
echo "<br>";
$dolfin->getAnimals($class);
echo "<br>";
$dog2->getAnimals($class);

$fish = new Animal();
$class = Animal::$classAnimal = 'Рыба';
$fish->setInfoAnimals("Щука", "Зеленый", "25", "2");

echo "<br>";
$fish->getAnimals($class);

olegdoc
Автор

Понятно, Тим и Боб имена одного человека, так что стареют они одинаково :D
Спасибо)

ejdsnrt
Автор

Работает как в Python, ссылочный тип. Если проще ОДНА коробка, и 3 записки с разными надписями, которые говорят что все лежит в этой ОДНОЙ коробке =)

sinsmith
Автор

топовые уроки !!! спасибо, что занимаетесь каналом

runetby
Автор

так грамотно объясняешь чувак (true) { echo "огонь-лайкос - топ"};// красава

wfttckk
Автор

Т.е изменяя в родителе значение оно передается в остальные копии объекта, т.к. сами объекты по сути "ярлыки" объекта-родителя.

paxfo
Автор

я знаю хорошо js, поэтому за объекты ваше шарю.

front-rud
Автор

Надоело заполнять поля каждого обьекта и еще в прошлой домашке искал решение чтобы автоматизировать, залез немного дальше в доки и вот что вышло не знаю правильно ли но работает
class Animal

{
public static $classAnimal = '"Млекопитающие"';
public $typeAnimals;
public $colorAnimal;
public $speed;
public $advendcedLife;



public function setInfoAnimals($typeAnimals, $colorAnimal, $speed, $advendcedLife)
{
$this->typeAnimals = $typeAnimals;
$this->colorAnimal = $colorAnimal;
$this->speed = $speed;
$this->advendcedLife = $advendcedLife;
}



public function getAnimals($class)
{
echo "Животное $this->typeAnimals <br> класс $class <br> Имеет $this->colorAnimal цвет <br>Развивает скорость $this->speed км.ч <br> и имеет среднюю продолжительность жизни $this->advendcedLife лет <br> <br>";
}
}

$class = Animal::$classAnimal;


$cat = new Animal();
$dog = new Animal();
$dolfin = new Animal();

$cat->setInfoAnimals("Кот", "Черный", "2", "12");
$dog->setInfoAnimals("Собака", "Рыжая", "6", "16");
$dolfin->setInfoAnimals("Дельфин", "Волна", "56", "55");


$cat->getAnimals($class);
echo "<br>";
$dog->getAnimals($class);
echo "<br>";
$dolfin->getAnimals($class);

olegdoc
Автор

У кого есть решение задания, по 5 пункту интересно как сделать, потому что я задание вообще не понял, что скопировать, полностью объект заменить на переменную? Приравнять его к переменной, скопировать с какой новой переменной, формулировка странноватая, конечно, но бесплатно и такое задание годится, только вот не хватает, конечно, решения. Задачи простые, даже я за пару минут делаю их пока что, можно было б добавить в начале нового видео ответы к прошлому. Но ладно.
Хелп

dopngg
Автор

Привет, Андрей! Не хочешь создать чат в telegram'е для подписчиков? Мне кажется, было бы интересно!

moqigqj
Автор

И тот кто это не поймет сейчас, смело может идти на завод ! 😉Шутка!

olegdoc
Автор

привет Андрей у вас ест практические уроки по php
где с нуля создаешь какой -то проект? буду благодарен за внимание

razmikxachaturiani
Автор

Видео не соответствует заголовку)
О выделении памяти для объекта послушал, вместо статических методах и свойствах

virienkodmitriy