Часть 2 - http://ph4n70m.blogspot.ru/2015/10/php-2.html
Недавно всем офисом проходили тест на PHP на сайте https://tests4geeks.com. Ресурс очень хороший, правда платный, но два теста бесплатные. Хорош тем, что угрожает в случае копипасты или альт-таба и прочего читинга заблокировать тест и не дать закончить.
Поэтому этот тест вдохновил на публикацию подобных "заковыристых" вопросов и ответов на них с комментариями:
* Создаёт постоянное соединение к серверу
* Подключиться к mysql серверу
* Ничего из вышеперечисленного
Всё легко гуглится по названию функции
* Нет
echo - не функция, а конструкция языка, поэтому скобки не обязательны и параметры передаются через запятую
function get_sum() {
global $var;
$var = 5;
}
$var = 10;
get_sum();
echo $var;
* 5
* 10
* 15
* NULL
Вроде как global переменные даже в php 5.3 (?) запретили по дефолту, но вопросы по ним остаются. Ни разу в работе не использовал такой приём.
Недавно всем офисом проходили тест на PHP на сайте https://tests4geeks.com. Ресурс очень хороший, правда платный, но два теста бесплатные. Хорош тем, что угрожает в случае копипасты или альт-таба и прочего читинга заблокировать тест и не дать закончить.
Поэтому этот тест вдохновил на публикацию подобных "заковыристых" вопросов и ответов на них с комментариями:
Область видимости
Какова область видимости функции inner()?
<?php
function outer() {
function inner() {
}
}
?>
* Только из outer
* Из любого места после вызова outer
* Из любого места
Здесь ничего сложного. Область видимости вполне естественна для многих языков.
Как начать сессию в PHP?
* session_start()
* session_set()
* session_register()
* Используя $_SESSION
Сессию стартуем именно этим вызовом. Ставим потом переменные через $_SESSION
Что делает такой скрипт?
<?php
$id = 3;
$str = "active$id";
$$str = 1;
?>
* Присваивает $str = 'active3'
* Присваивает $str = 1
* Объявляет новую переменную active3
* Ничего, всё неправильно.
По итогу $str = 'active3' и $active3 = 1; Конструкция $$ используется как "указатель" в Си. Т.е. получаем значение по $str и вторым $ уже получаем вторую переменную по этому имени.
Зачем мы используем <<< в PHP?
* Обявлять регулярки
* Как echo
* Объявлять строковые переменные
Обычный heredoc синтаксис
Могут ли быть функции в PHP перегружены или переопределены?
* Да
* Нет
Function signatures are based only on their names and do not include argument lists
Как в PHP получить список заголовков ответа?
* headers_list()
* headers_send()
* headers_getAll()
* headers()
headers_list — Возвращает список переданных (или готовых к передаче) заголовков
Какие из этих структур не доступны в PHP?
* Множественное наследование
* Абстрактные классы
* Публичные и приватные методы
* Интерфейсы
Остальное вроде есть. Поправьте, если я неправ.
Для чего используется mysql_pconnect()?
* Возвращает ид текущего соединения, перед открытием нового* Создаёт постоянное соединение к серверу
* Подключиться к mysql серверу
* Ничего из вышеперечисленного
Всё легко гуглится по названию функции
Может ли echo принимать больше одного параметра?
* Да* Нет
echo - не функция, а конструкция языка, поэтому скобки не обязательны и параметры передаются через запятую
Что выведет скрипт?
<?phpfunction get_sum() {
global $var;
$var = 5;
}
$var = 10;
get_sum();
echo $var;
* 5
* 10
* 15
* NULL
Вроде как global переменные даже в php 5.3 (?) запретили по дефолту, но вопросы по ним остаются. Ни разу в работе не использовал такой приём.
Зачот! Даешь вторую половину и js!
ОтветитьУдалить