и посмотреть медиа
PHP | Вопросы собесов
и посмотреть медиа
Вопросы собеседований по PHP с ответами.
Вопросы собеседований по PHP с ответами.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
Типичные вопросы по PHP: фреймворки, базы данных, безопасность. Разбор с кодом для подготовки.
🤔 Что содержит инкапсуляция кроме сокрытия данных? Инкапсуляция — это не только скрытие данных, но и ограничение доступа к внутренним деталям объекта + защита логики от внешнего вмешательства. 🚩Основные аспекты инкапсуляции Сокрытие данных (private, protected). Контроль доступа через геттеры и сеттеры. Защита объекта от некорректных данных. Чёткое API для работы с объектом. Разделение ответственности внутри класса. 🟠Сокрытие данных (`private`, `protected`) Скрываем внутренние переменные, чтобы их нельзя было изменить напрямую. class User { private string $password; // Прямой доступ запрещён public function __construct(string $password) { $this->password = $password; } } $user = new User("123456"); // echo $user->password; // ❌ Ошибка! Доступ запрещён 🟠Контроль доступа через геттеры и сеттеры Предоставляем доступ к данным через методы (контролируем поведение). class User { private string $password; public function __construct(string $password) { $this->setPassword($password); } public function getPassword(): string { return "Секретный пароль скрыт"; // Никогда не выдаём оригинал } public function setPassword(string $password) { if (strlen($password) < 6) { throw new Exception("Пароль слишком короткий!"); } $this->password = password_hash($password, PASSWORD_DEFAULT); } } $user = new User("securePass"); // echo $user->password; // ❌ Ошибка! Доступ запрещён echo $user->getPassword(); // ✅ "Секретный пароль скрыт" 🟠Защита объекта от некорректных данных Инкапсуляция позволяет проверять данные перед их сохранением. class Product { private float $price; public function setPrice(float $price) { if ($price < 0) { throw new Exception("Цена не может быть отрицательной!"); } $this->price = $price; } } 🟠Чёткое API для работы с объектом Инкапсуляция создаёт удобный интерфейс для работы с классом. class Order { private array $items = []; public function addItem(string $item) { $this->items[] = $item; } public function getItems(): array { return $this->items; } } $order = new Order(); $order->addItem("Телефон"); print_r($order->getItems()); // ✅ ["Телефон"] 🟠Разделение ответственности внутри класса Инкапсуляция помогает отделить внутреннюю логику от интерфейса. class BankAccount { private float $balance = 0; private function logTransaction(float $amount) { echo "Транзакция: $amount\n"; } public function deposit(float $amount) { $this->balance += $amount; $this->logTransaction($amount); } public function getBalance(): float { return $this->balance; } } $account = new BankAccount(); $account->deposit(100); echo $account->getBalance(); // ✅ 100 Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!
El canal para buscar perlas ocultas (gems)KuCoin. Recomendaciones de fichas prometedoras con alto potencial de crecimiento.
Información sobre POsFormitforBIM- simulación. Guías y actualizaciones.
Versión Sinhala de TelegramInfo. Noticias, beta detalles, discusiones y respuestas anónimas en Sinhala.