Дмитрий Сергеевич (axshavan) wrote,
Дмитрий Сергеевич
axshavan

Category:

Вопросы к собеседованию про PHP

Как я уже говорил, моё начальство вознамерилось нанять ещё одного PHP-разработчика мне в компанию. Круто, хоть будет с кем поговорить. Вероятно, скоро один из кандидатов придёт на собеседование. По этому поводу я подготовил список вопросов по PHP, но, как мне кажется, вопросы недостаточно сложны и список недостаточно длинен - я больше не могу придумать в силу своего скудоумия и отсутствия фантазии. Кроме того, я бы ещё дополнил его вопросами по HTML, CSS, JS и jQuery, MySQL, регулярным выражениям и основам работы в UNIX-подобных операционных системах, но, боюсь, у меня не хватит на всё это фантазии и знаний. Ну что там по jQuery спрашивать можно? Типа почему алерт, который стоит после гет-запроса, отобразится раньше, чем алерт, который стоит в функции, повешенной на калбек этого гет-запроса? Поэтому пока я решил ограничиться только PHP. Пару вопросов я убрал - про порядок выполнения деструкторов и про уборщика мусора (про уборщик мусора надо знать только, что он работает на выходе из функции), потому что в мануале про это как-то не особо написано, и если никогда с этим не сталкиваться, то можно только догадываться и строить логические рассуждения о том, как это должно происходить. Ну, оно происходит как и должно, если рассуждать логически, в отличие от того, как (по моему мнению) должна быть устроена модель ООП.

Ниже текущий вариант списка вопросов по PHP для чувака, который придёт собеседоваться. Хотите проверить себя?

Как вы думаете, всегда ли эта функция будет работать так, как задумано?
function foo($str, $find) 
{ 
 if(strpos($str, $find)) 
 { 
  echo '"'.$find.'" exists in "'.$str."'"; 
 } 
 else 
 { 
  echo '"'.$find.'" does not exist in "'.$str."'"; 
 } 
}


Как вы думаете, чему равен $x в итоге?
function foo(&$a) 
{ 
 return $a++; 
} 
$x = 17; 
$x = foo($x); 
echo $x;


В чём разница между функциями include() и require()? В чём разница между функциями require() и require_once()?

В чём разница между функциями count() и sizeof()?

Как вы думаете, чему в итоге равно $a?
$a = "1"; 
$a[$a] = "2"; 
echo $a;


Что будет выведено в итоге?
$q = $w = 'w'; 
${$q} = 'q'; 
echo ${${$w}};


Какие элементы будет содержать массив $a?
$a = array(1, 2, 3, 4, 5); 
foreach($a as &$v) 
{ 
 $v *= 2; 
} 
$v = 2; 
print_r($a);


Как вы думаете, что останется от массива $a после нижеследующей процедуры?
$a = array(1, 2, 3, 4, 5); 
for($i = 0; $i < count($a); $i++) 
{ 
 if($a[$i] > 2) 
 { 
  unset($a[$i]); 
 } 
} 
print_r($a);


Что будет выведено?
class foo 
{ 
 public $a = 4; 
 function inc_a($inc) 
 { 
  $this->a += $inc; 
  return $this->a + 1; 
 } 
} 
$z = new foo(); 
$x = new foo(); 
echo $z->inc_a($x->inc_a(19));


Что будет выведено здесь?
function foo($a)
{
 return $a;
}
$a = foo('foo');
echo $a('a');


Как вы думаете, что будет выведено здесь?
class foo 
{ 
 public static $v = 17; 
 function a() 
 { 
  echo $this->v; 
 } 
} 
class bar extends foo 
{ 
 public $v = 33; 
} 
$a = new bar(); 
$a->a();


Что означают слова public, protected, private, static и final перед определениями функций класса?

Как вы думаете, будет ли выведено что-нибудь в этом случае?
class foo 
{ 
 public $i = 6; 
} 
$a = new foo(); 
$b = $a; 
$b->i = 3; 
unset($b); 
echo $a->i;


Немного похожий случай. Как вы думаете, что будет выведено, если раскомментрировать первую строчку? А если вторую?
class foo 
{ 
 public $i = 6; 
} 
$a = new foo(); 
$b = &$a; 
// unset($a); 
// $a = null; 
echo $b->i;


Конечно, я к собеседованию ещё несколько вопросов придумаю, и часть заменю - это черновой вариант. Может, по джаваскриптам насочиняю ещё что-нибудь.

Оригинал записи http://axshavan.blogspot.com/2010/10/php.html
Tags: web, работа
Subscribe

  • Коуты над Десной, часть 1

    Первого августа, перекрыв дома воду и выключив интренет, мы приехали в городочек Коуты над Десной. Это конечная станция железной дороги вообще,…

  • Плёнка №202

    Плёнка: Fomapan profi line action 400 Фотоаппарат и объектив: Zenit-E + Helios 44-3 2/58 Проявитель: Fomadon LQN Сканер: FilmScan35 II 1 2 3…

  • Плёнка №199

    Всякая нудная техническая информация - что это за плёнка, чего фотографии такие контрастные, и так далее - расположена после снимка номер шесть. 1…

  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 25 comments

  • Коуты над Десной, часть 1

    Первого августа, перекрыв дома воду и выключив интренет, мы приехали в городочек Коуты над Десной. Это конечная станция железной дороги вообще,…

  • Плёнка №202

    Плёнка: Fomapan profi line action 400 Фотоаппарат и объектив: Zenit-E + Helios 44-3 2/58 Проявитель: Fomadon LQN Сканер: FilmScan35 II 1 2 3…

  • Плёнка №199

    Всякая нудная техническая информация - что это за плёнка, чего фотографии такие контрастные, и так далее - расположена после снимка номер шесть. 1…