Да, это крик души. Потому что в среднем за неделю я собеседую несколько, которые претендуют на должность 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 в базе обнаружено не будет.
*/
Крик души, собственно в следующем:
из, предположим, 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 в базе обнаружено не будет.
*/