Так, це крик душі. Тому що в середньому за тиждень я співрозмовляю кілька, які претендують на посаду php-програміста.
Крик душі, власне в наступному:
з, припустимо, 10 осіб найпростіші тести складають максимум двоє (один - наполовину або на дві третини). Ось така проста статистика.
Можливо, я ставлю надто складні запитання (дещо видозмінені питання під палачами)?
Власне, в даній топіці я запропонував би поговорити на тему завдань, пропонованих потенційному співробітнику на співбесіді.
Може бути, хтось поділиться своїми завданнями, або в коментарях якимось чином народиться щось дивно-просте, але дозволяє зрозуміти рівень людини?
Завдання номер раз.
$x = 1;
if ($x == '1') {
echo 'a';
}
if ($x == true) {
echo 'b';
}
if((bool)$x === true){
echo 'e';
}
if ($x === true) {
echo 'c';
}
if((int)$x === true){
echo 'd';
}
/*
Який рядок виведеться при виконанні скрипту?
Чому сповнюється або не сповнюється кожна з умов?
*/
Завдання номер два
/*
Рядок
site.ru/?x=foo
*/
error_reporting(E_ALL);
ini_set('display_errors','1');
ini_set('register_globals','on');
var_dump($x);
unset($x);
ini_set('register_globals','off');
var_dump($x);
/*
Що виведе скрипт в ідеальних умовах сервера?
*/
Завдання номер три
class Test{
private $var;
function setMe($value){
$this->var = $value;
}
}
class More extends Test{
public $var;
}
$oTest = new Test;
$oMore = new More;
echo $oTest->setMe('foo');
echo $oMore->setMe('foo');
echo $oMore->var;
echo $oTest->var;
/*
Для якої версії PHP буде працювати цей скрипт?
Що виведе цей скрипт?
*/
Завдання номер чотири
/*
Припустимо, що вхідний URL такий:
site.ru/?x=1
Припустимо, що у нас є таблиця виду
--news
----id (int,11)
----anons (varchar,255)
----text (text)
Існують записи
1 анонс текст
2 анонс1 текст2
*/
$query = «SELECT anons,text FROM news WHERE id='».$_GET['x'].""'"";
$res = mysql_query($query);
if($res && mysql_num_rows($res)>0){
while($row = mysql_fetch_assoc($res)){
echo $row['anons'];
echo $row['text'];
}
}
/*
Зробити SQL-іньєкцію скрипту, яка виведе всі існуючі новини.
Змінити запит так, щоб SQL-іньєкція не працювала.
Віддати заголовок 404 Not Found у разі, якщо новини з вказаним ID у базі виявлено не буде.
*/
