Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

впрсы

.docx
Скачиваний:
0
Добавлен:
14.10.2023
Размер:
28.18 Кб
Скачать

СТУДЕНТ: БАБКИН АС

ГРУППА: ИС-353

ДАТА СДАЧИ: 22.03.2023

ПРАКТИЧЕСКАЯ РАБОТА

Ответы на вопросы

Челябинск, 2023

31. Что такое абстрактный класс в PHP и для чего он используется?

Абстрактный класс представляет частичную реализацию для классов-наследников.

31. Что такое абстрактный класс в PHP и для чего он используется?

Абстрактный класс представляет частичную реализацию для классов-наследников.

32. Как объявить абстрактный класс в PHP?

Через параметр abstract

abstract class Messenger

{

abstract function send($message); // абстрактный метод

33. Может ли абстрактный класс содержать реализацию методов в PHP?

Да может.

34. Какие методы могут быть объявлены в абстрактном классе PHP?

Такие же абстрактные

35. Может ли класс наследовать несколько абстрактных классов в PHP?

Нет, только один. Либо использовать трейты

36. Может ли абстрактный класс быть наследником другого абстрактного класса в PHP?

Да может, так как последний просто расшириться

37. Какие методы абстрактного класса должны быть обязательно реализованы в его наследниках в PHP?

Все объявленные

38. Как использовать абстрактные классы для обеспечения множественного наследования в PHP?

Использовать трейты

39. Какие преимущества имеют абстрактные классы в сравнении с интерфейсами в PHP?

Их можно переопределять

40. Как использовать абстрактные классы для обеспечения безопасности кода в PHP?

Создавать их в отдельных файлах и вызывать от туда

41. Что такое трейт в PHP и для чего он используется?

Позволяет использовать множественное наследование

42. Как объявить трейт в PHP?

Объявить как класс

trait ezcReflectionReturnInfo { function getReturnType() { /*1*/ } function getReturnDescription() { /*2*/ } }

43. Можно ли создавать объекты на основе трейта в PHP?

Только в классе использующий трейт

44. Каким образом трейты реализуют множественное наследование в PHP?

Позволяет повторно использовать набор методов

45. Можно ли наследовать трейт в PHP? Если да, то как это сделать?

Как обычный класс, только после определения

46. Какие ограничения накладываются на использование трейтов в PHP?

Нельзя создать экземпляр трейта

47. Как использовать трейты для добавления функциональности к классам в PHP?

Множественное наследование

В трейтах можно определять статические переменные, статические методы и статические свойства.

48. Можно ли переопределить метод, объявленный в трейте, в классе PHP?

Да, но при повторном испоьзовании трейта

49. Какие преимущества имеют трейты в сравнении с наследованием классов в PHP?

Семантика комбинации трейтов и классов определена таким образом, чтобы снизить уровень сложности, а также избежать типичных проблем, связанных с множественным наследованием и c т.н. mixins.

50. Как использовать трейты для реализации поведенческих паттернов в PHP?

Использовать статические методы

<?php trait StaticExample {     public static function doSomething() {         return 'Что-либо делаем';     } } class Example {     use StaticExample; } Example::doSomething();

51. Как объявить свойство класса в PHP?

Объявить класс -> и используя параметр доступа объявить свойство

class User { public int $id; public ?string $name; }

52. Можно ли задать значение свойства класса в момент его объявления?

Да, кроме readonly

53. Как получить значение свойства класса в PHP?

Вызвать свойство после объявления обращения к классу

54. Как изменить значение свойства класса в PHP?

Перегрузить класс, создать дубликат класса с другим значениме

55. Как проверить наличие свойства у экземпляра класса в PHP?

Использовать  instanceof

56. Можно ли объявить свойство класса как приватное или защищенное?

Только при модификации области видимости

57. Как объявить статическое свойство класса в PHP?

Доступны только через ::

class Foo { public static function aStaticMethod() { // ... }

58. Можно ли получить доступ к статическому свойству класса без создания экземпляра класса?

Доступ к статическим свойствам осуществляется с помощью оператора разрешения области видимости (::), и к ним нельзя получить доступ через оператор объекта (->).

59. Что такое геттеры и сеттеры свойств класса в PHP и как их использовать?

Методы позволяющие изменять приватные свойства

60. Можно ли изменять свойства объекта класса в конструкторе?

Только с модификатором public

61. Как объявить метод класса в PHP?

Как функцию

class User

{

private $age;

public function getAge()

{

return $this->age;

}

}

62. Можно ли вызвать метод класса без создания экземпляра класса?

Только если обращаться напрямую к классу через ::

63. Как передать аргументы в метод класса в PHP?

Через констрактор или при создании экземпляра класса и установки значений в него.

64. Какие типы методов класса есть в PHP, и как они отличаются друг от друга?

Обычные и магические

Магические имеют предустановленные функции и начинаются с “__”

Обычные описываются самостоятельно

65. Можно ли объявить метод класса как приватный или защищенный?

Это невозможно

66. Что такое статический метод класса в PHP, и как его объявить?

Метод с использованием только статических данных

67. Как передать аргументы в статический метод класса в PHP?

Использованием this

$this->const;

68. Можно ли вызывать статический метод класса от экземпляра класса?

Только через полное имя класса classname::class

69. Что такое конструктор и деструктор класса в PHP, и как их использовать?

Классы, в которых объявлен метод-конструктор, будут вызывать этот метод при каждом создании нового объекта, так что это может оказаться полезным, например, для инициализации какого-либо состояния объекта перед его использованием.

Деструктор уничтожает класс или его экземпляр

70. Можно ли вызвать метод класса, который был объявлен в родительском классе, в дочернем классе в PHP?

Только если этот класс наследует родительский

class Base { public function foo(int $a = 5) { echo "Допустимо\n"; } } class Extend extends Base { function foo(int $a) { parent::foo($a); } }

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]