При работе с объектно-ориентированным программированием на PHP важно понимать разницу между ключевыми словами «self» и «this». Эти ключевые слова играют решающую роль в доступе к свойствам и методам внутри класса. В этой статье мы рассмотрим различия между «self» и «this» и приведем примеры кода, иллюстрирующие их использование.
Ключевое слово «Self».
Ключевое слово «self» относится к самому классу, позволяя вам получить доступ к его статическим свойствам и методам. В основном он используется в контексте определения класса. Вот пример:
class Example {
public static $property = 'Hello';
public static function hello() {
echo self::$property;
}
}
Example::hello(); // Output: Hello
В этом примере мы используем ключевое слово «self» для доступа к статическому свойству $propertyв классе Example. Используя self::$property, мы можем получить доступ к значению статического свойства.
Ключевое слово «This»:
С другой стороны, ключевое слово «this» относится к текущему экземпляру класса. Он используется внутри методов класса для доступа к нестатическим свойствам и методам. Вот пример:
class Example {
public $property = 'Hello';
public function hello() {
echo $this->property;
}
}
$object = new Example();
$object->hello(); // Output: Hello
В этом примере мы создаем экземпляр класса Exampleи присваиваем его переменной $object. Затем мы используем ключевое слово this в методе hello()для доступа к нестатическому свойству $propertyтекущего экземпляра.
Использование оператора разрешения области с «Self» и «This»:
Оператор разрешения области ::можно использовать в сочетании с «self» и «this» для доступа к свойствам и методам.. Вот пример, демонстрирующий это:
class Example {
public static $property = 'Hello';
public function hello() {
echo self::$property;
echo $this->property;
}
}
Example::$property = 'Hi';
$object = new Example();
$object->property = 'Hola';
$object->hello();
В этом примере мы изменяем статическое свойство $property, используя Example::$property, и нестатическое свойство $property, используя 14. В методе hello()мы используем self::$propertyдля доступа к статическому свойству и $this->propertyдля доступа к нестатическому свойству.
Понимание разницы между «я» и «это» имеет решающее значение при работе с объектно-ориентированным программированием на PHP. Ключевое слово «self» обеспечивает доступ к статическим свойствам и методам в определении класса, а ключевое слово «this» относится к текущему экземпляру класса. Правильное использование этих ключевых слов обеспечивает эффективный и точный доступ к элементам класса, улучшая общую функциональность и структуру вашего PHP-кода.