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. Можно ли вызвать метод класса без создания экземпляра класса? |
Только если обращаться напрямую к классу через ::
|
|