 
        
        22.03.2023ыфвыфвфывфывфывфывфы
.docxСтудент Попов Владимир
Группа ис-353
Дата 22.03.2023
Практическая работа
Ответы на вопросы
| Что такое PHP и для чего он используется? | 
| распространённый язык программирования общего назначения с открытым исходным кодом. | 
| 
 | 
| Как объявить переменную в PHP? | 
| Что бы объявить переменную, нужно использовать знак $ | 
| $name=”Voloda” $age= 18; | 
| Каковы основные различия между одинарными и двойными кавычками в PHP? | 
| ‘’ это обычная строка “” такая же строка но есть возможность использовать переменные | 
| $name= ‘vova’ echo ‘меня зовут $name’ 
 
 $name = “vova” echo “меня зовут “$name” | 
| Какие типы данных поддерживает PHP? | 
| String, integers, bool, array, objects, null, resources | 
| Какие функции используются для работы с массивами в PHP? | 
| Count() Возращает количество элементов в массиве Array() Создает массив Isset()Проверяет элемент массива установлен? Unset()Удаляет элемент из массива Sort()сортирует значения по возрастанию Rsort() сортирует значение по убыванию | 
| 
 | 
| Какой оператор используется для проверки равенства и эквивалентности в PHP? | 
| Для проверки используется “==” | 
| $b= 18; $a=18; $b == $a //будет true | 
| Что такое обработка исключений и как она реализуется в PHP? | 
| Механизм обрабатывающий ошибки и исключительные ситуации В php используется try catch | 
| Try{} catch(Exception $e){} | 
| Какой оператор используется для объединения двух строк в PHP? | 
| Для этого используют точки “.” | 
| $string1 = “test1”; $string2 = “test2”; echo $string1 . $string2; | 
| Что такое функция в PHP и как ее объявить? | 
| Функция в php это блок кода который выполняет определенную задачу и может вызваться из других частей кода | 
| Function greet($test) { Echo “hello, “ . $test; } | 
| Как работает оператор switch в PHP и как его использовать? | 
| Делает проверку равна ли переменная или выражение одному значению | 
| $pets = “zoo” Switch ($pets) { Case “cat”: echo “zoo is cat”; Break; Case “dog”: echo “zoo is dog”; Break; } 
 
 
 
 | 
| Что такое ООП и какие преимущества оно предоставляет в PHP? | 
| Ооп – объектно ориентированное программирование С помощью ооп в php можно создавать более структурированный код | 
| Что такое класс в PHP и как его объявить? | 
| Класс в php это шаблон который будет использоваться для создания объектов часто используется new | 
| $mytest = new testet(); | 
| Как создать объект класса в PHP? | 
| Для создания объекта необходимо использовать ключевое слово new и передать его аргументы | 
| $obj = new objs(“test”) | 
| Что такое наследование в ООП и как оно реализуется в PHP? | 
| Реализуется с помощью extends | 
| Class cat extends Animal{ Public function meow(){ Echo “Meow”; } } | 
| Что такое абстрактный класс и как его использовать в PHP? | 
| Этот класс который не может быть создан в качестве объекта но может использоваться как абстрактные методы для реализации в производных классах | 
| Abstract class Animal{ Protected $test; Public function __construct($test){ $this->test = $test; } Abstract public function makeSound(); } | 
| Что такое интерфейс в PHP и как его использовать? | 
| Интерфейс это абстрактное определение методов, используется для определения общих методов | 
| Interface Car{ Public function start(); Public function stop(); } | 
| Как реализовать полиморфизм в PHP? | 
| Позволяет создавать классы которые наследуют свойства методы от родительского класса | 
| Class animal{ Public function makesound(){ } } Class cat extends animal{ Public function makesound(){ Return “ meow”; } } | 
| Что такое конструктор и деструктор класса в PHP? | 
| Методы которые автоматически вызываются при создании объектов в php , вызывается автоматически при создании объекта класса. Ключевое слово __construct() | 
| Class test{ Public $tested1; Public $tested2; Public function __construct($t1, $t2){ $this->tested1 = $t1; $this-> tested2 = $t2; } } | 
| Какие виды доступа к свойствам и методам класса существуют в PHP? | 
| Public будут доступны для любого контекста Private свойства и методы только для определыннх задач | 
| class StaticExample { static public $aNum = 0; 
 static public function sayHello() { print "Привет!"; } } 
 | 
| Что такое интерфейс в PHP и для чего он используется? | 
| Интерфейсы разделяют пространство имен с классами и трейтами поэтому они могут называться одинаково | 
| Interface test{ Public function bv ($s); } Private $vars=[]; | 
| Как объявить интерфейс в PHP? | 
| С использованием ключевого слова interface вместо class | 
| class BadTemplate implements Template { private $vars = []; public function setVariable($name, $var) { $this->vars[$name] = $var; } } | 
| Может ли интерфейс содержать реализацию методов в PHP? | 
| Нет интерфейс, интерфейс только задает | 
| Interface test{ Public function ds(); } | 
| Какие виды методов могут быть объявлены в интерфейсе PHP? | 
| Интерфейсы объявляются так же, как и обычные классы, но с использованием ключевого слова interface вместо class. Тела методов интерфейсов должны быть пустыми. | 
| public function getHtml($template) { foreach($this->vars as $name => $value) { $template = str_replace('{' . $name . '}', $value, $template); } return $template; } } | 
| Можно ли наследовать интерфейсы в PHP? Если да, то как это сделать? | 
| Очевидно, что публичные методы, причем без реализации: сразу после заголовка (сигнатуры) метода следует закончить его точкой с запятой: | 
| interface SomeInterface { public function foo(); public static function bar(Baz $baz); } | 
| Может ли класс реализовывать несколько интерфейсов в PHP? | 
| Класс может реализовывать несколько интерфейсов, которые объявляют метод с одинаковым именем. | 
| interface B extends A { public function baz(Baz $baz); } | 
| Что произойдет, если класс не реализует все методы, объявленные в интерфейсе PHP? | 
| Если класс не реализует все методы объявленные в интерфейсе то это приведет к фатальной ошибке | 
| 
 | 
| Что такое типизация интерфейсов в PHP и как она используется? | 
| Для реализации интерфейса используется оператор implements. Класс должен реализовать все методы, описанные в интерфейсе, иначе произойдёт фатальная ошибка. | 
| interface Usable { /* ... */ } interface Updatable { /* ... */ } | 
| . Как использовать интерфейсы для обеспечения множественного наследования в PHP? | 
| В чистом виде нет Только trait | 
| trait ezcReflectionReturnInfo { function getReturnType() { /*1*/ } function getReturnDescription() { /*2*/ } } 
 | 
| Какие преимущества имеют интерфейсы в сравнении с абстрактными классами в PHP? | 
| Он поддерживает наследование не содержиит data members Не содержит конструктор | 
| interface A {} interface B {} interface C {} 
 //A class can implements multiple interfaces class Base implements A, B, C {} 
 | 
| 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. Можно ли вызвать метод класса без создания экземпляра класса? | 
| 
 Только если обращаться напрямую к классу через :: 
 
 
 
 
 
 | 
| 
 | 
