Перейти к содержимому

protected

Ключевое слово PHP "protected": подробное руководство

Ключевое слово "protected" в PHP используется для объявления члена класса защищённым, что означает, что к нему можно получить доступ только внутри самого класса и его подклассов. В этой статье мы подробно рассмотрим синтаксис и использование ключевого слова "protected", а также приведём множество примеров, которые помогут вам освоить эту важную функцию PHP.

Синтаксис

Ключевое слово "protected" используется для объявления члена класса защищённым в PHP. Вот базовый синтаксис для использования ключевого слова "protected":

Синтаксис protected в PHP

php
class MyClass {
  protected $myProtectedVariable;
  protected function myProtectedFunction() {
    // Code block here
  }
}

В этом примере мы используем ключевое слово "protected" для объявления защищённой переменной и защищённой функции внутри класса.

Примеры

Рассмотрим несколько практических примеров использования ключевого слова "protected":

Примеры использования protected

php
<?php

// Example 1
class Animal
{
  protected $name;

  public function __construct($name)
  {
    $this->name = $name;
  }

  protected function getName()
  {
    return $this->name;
  }
}

class Dog extends Animal
{
  public function bark()
  {
    $name = $this->getName();
    echo "$name barks!" . PHP_EOL;
  }
}

$dog = new Dog("Rufus");
$dog->bark(); // Output: Rufus barks!

// Example 2
class BankAccount
{
  protected $balance = 0;

  public function deposit($amount)
  {
    $this->balance += $amount;
  }

  protected function canWithdraw($amount)
  {
    return $amount <= $this->balance;
  }
}

class SavingsAccount extends BankAccount
{
  public function withdraw($amount)
  {
    if ($this->canWithdraw($amount)) {
      $this->balance -= $amount;
      echo "Withdrawal successful!" . PHP_EOL;
    } else {
      echo "Insufficient funds!" . PHP_EOL;
    }
  }
}

$savingsAccount = new SavingsAccount();
$savingsAccount->deposit(100);
$savingsAccount->withdraw(50); // Output: Withdrawal successful!
$savingsAccount->withdraw(100); // Output: Insufficient funds!

В этих примерах мы используем ключевое слово "protected" для объявления защищённых переменных и функций внутри классов, доступ к которым возможен только внутри самого класса и его подклассов.

Преимущества

Использование ключевого слова "protected" имеет несколько преимуществ, включая:

  • Инкапсуляция: Используя ключевое слово "protected" для объявления членов класса защищёнными, вы можете инкапсулировать данные и функциональность внутри класса и его подклассов, что повышает удобство поддержки и модульность вашего кода.
  • Наследование: Ключевое слово "protected" позволяет подклассам получать доступ к членам класса и изменять их, одновременно предотвращая доступ из внешнего кода.

Заключение

Подводя итог, ключевое слово "protected" является важным инструментом для разработчиков PHP, которые стремятся создавать классы с инкапсулированными данными и функциональностью, доступными для наследования подклассами. Оно позволяет объявлять члены класса защищёнными, что означает доступ к ним только внутри самого класса и его подклассов, а также повышает удобство поддержки и модульность вашего кода. Надеемся, что это подробное руководство было полезным, и желаем вам успехов в дальнейшем развитии ваших навыков PHP.

Практика

В PHP какие из перечисленных могут обращаться к защищённым свойствам и методам?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.