/
kkkuceravin
/
php-code
Обзор
Документация
Войти
/
kkkuceravin
/
php-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
Feature/2
index.php
112 строк
4 KB
kuceravink
initial commit
01 дек 2025, 21:17
01 дек 2025, 21:17
117198f
Код
Авторство
О чём код?
<?php require 'vendor/autoload.php'; use App\MagicClass; echo "Демонстрация магических методов\n\n"; // __construct вызывается при создании объекта echo "1. Создание объекта:\n"; $magic = new MagicClass(); echo "\n"; // __set вызывается при установке несуществующего свойства echo "2. Установка свойства:\n"; $magic->name = "Test"; echo "\n"; // __get вызывается при чтении несуществующего свойства echo "3. Чтение свойства:\n"; $value = $magic->name; echo "\n"; // __isset вызывается при проверке существования свойства echo "4. Проверка isset:\n"; if (isset($magic->name)) { echo "Свойство существует\n"; } echo "\n"; // __call вызывается при вызове несуществующего метода echo "5. Вызов несуществующего метода:\n"; $magic->someMethod(); echo "\n"; // __callStatic вызывается при вызове несуществующего статического метода echo "6. Вызов несуществующего статического метода:\n"; MagicClass::someStaticMethod(); echo "\n"; // __toString вызывается при преобразовании в строку echo "7. Преобразование в строку:\n"; echo $magic; echo "\n"; // __invoke вызывается при попытке вызвать объект как функцию echo "8. Вызов объекта как функции:\n"; $magic(); echo "\n"; // __clone вызывается при клонировании echo "9. Клонирование объекта:\n"; $clone = clone $magic; echo "\n"; // __sleep и __wakeup вызываются при сериализации echo "10. Сериализация:\n"; $serialized = serialize($magic); echo "\n"; echo "11. Десериализация:\n"; $unserialized = unserialize($serialized); echo "\n"; // __unset вызывается при удалении свойства echo "12. Удаление свойства:\n"; unset($magic->name); echo "\n"; // __destruct вызывается автоматически в конце скрипта echo "13. Объект будет уничтожен в конце скрипта\n"; use App\Point; use App\Vector; // a. Создание точки с произвольными координатами T1 $T1 = new Point(5.0, 3.0); echo "Создана точка: $T1\n\n"; // b. Создание произвольного вектора V1 $V1 = new Vector(4.0, 2.0); echo "Создан вектор: $V1\n"; // c. Создание нулевого вектора V2 $V2 = new Vector(0.0, 0.0); echo "Создан нулевой вектор: $V2\n"; // d. Создание вектора V3, перпендикулярного V1 $V3 = new Vector(-$V1->getY(), $V1->getX()); echo "Создан перпендикулярный вектор: $V3\n\n"; // Вычисление и вывод длины каждого вектора echo "Длина вектора V1: " . $V1->getLength() . "\n"; echo "Длина вектора V2: " . $V2->getLength() . "\n"; echo "Длина вектора V3: " . $V3->getLength() . "\n\n"; // Проверка перпендикулярности V1 и V3 if ($V1->isPerpendicularTo($V3)) { echo "Векторы V1 и V3 перпендикулярным\n"; } else { echo "Векторы V1 и V3 не перпендикулярным\n"; } // Проверка нулевого вектора if ($V2->isZero()) { echo "Вектор V2 является нулевым\n\n"; } // Перенос точки T1 на вектор V1 echo "Точка T1 до переноса: $T1\n"; $T1->moveByVector($V1); echo "Точка T1 после переноса на вектор V1: $T1\n";