PHP задачи с собеседований
3.05K subscribers
475 photos
6 videos
11 files
360 links
Задачи, тесты и теоретические вопросы по PHP.

Прислать задачу/вопрос в дар: @cyberJohnny
Сотрудничество: @cyberJohnny
Download Telegram
👎26🎉7👍2
Что выведет данный скрипт?
Anonymous Quiz
19%
000
27%
111
53%
123
1%
333
👎7🔥4👍3
Must have для программистов по PHP
100-300к в месяц зарплатная вилка программистов на PHP в России.

Ищете работу на PHP? Наш канал PHP_rabota уже отобрал вакансии, как для новичков, так и для продвинутых PHPшников.

Подписывайтесь и откликайтесь на свежие вакансии: @PHP_rabota
👎4👍1🔥1
Что выведет такой код?
Anonymous Quiz
21%
18
70%
19
8%
20
1%
21
👍24👎21
👆Объяснение к предыдущему вопросу

👨🏻‍💻 Этот код выведет ошибку о том, что в метод getPHPVersion не передали достаточное кол-во аргументов, но если переместить PHP_VERSION в последнюю пару скобок (первая пара - это __invoke, вторая - анонимная ф-ция, возвращаемая из __invoke, и уже третья - это вызов метода класса как анонимной ф-ции), то все будет работать.

По поводу синтаксиса, когда массив превращается в callable, можно почитать в документации https://www.php.net/manual/ru/language.types.callable.php.

PHP задачи с собеседований
🔥14👍5
👆Объяснение к предыдущему вопросу

👨🏻‍💻 Причина, по которой типы свойств являются инвариантными, заключается в том, что их можно читать и записывать. Изменение от int к ?int подразумевает, что чтение из свойства теперь может также возвращать NULL в дополнение к целым числам.

Изменение с ?int на int подразумевает, что больше невозможно записать значение NULL для свойства. Таким образом, ни контрвариантность, ни ковариантность не применимы к типам собственности.

PHP задачи с собеседований
👍14
👆Объяснение к предыдущему вопросу

👨🏻‍💻 Closure::bind — дублирует замыкание с указанием конкретного связанного объекта и области видимости класса. Первым параметром мы передаем анонимную функцию которая в дальнейшем будет привязана к объекту который мы передаем третьим параметром.

PHP задачи с собеседований