[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Задания на собеседовании
Страницы: 1, 2, 3, 4
volter9
Вот вам такая задачка, что будет?:

class A {
public function __toString () {
throw new Exception('Этот класс нельзя перевести в строку');
}
}


$a = new A;
echo $a;


Или вот такое:


class A {

private $b = '';

public function __construct ($name) {
$this->b = $name;
}

public function modify (A &$a) {
$a = $this;
}

public function getB () {
return $this->b;
}

}


$c = new A('Hello');
$d = new A('World');

$c->modify($d);

echo $d->getB();


Что будет? )

:)

_____________
Мой блог
ApuktaChehov
По первому не знал, что так нельзя )

По второму я правильно додумался. И проверил уже.

_____________
volter9
Вы много чего не знаете о PHP smile.gif
И главное не все описано в документации. Вот есть такой сайт и такой сайт, они хорошо раскрывают многие ляпы в PHP.

_____________
Мой блог
chee

class A {
public function __toString () {
throw new Exception('Этот класс нельзя перевести в строку');
}
}


$a = new A;
echo $a;

Такие задачи на собеседование неразумно задавать, максимум что вы получите это потешите своё самолюбие. Мало кто знает документацию так досканально. Максимум когда я допускаю такие вопросы, когда человек идет на должность старшего программиста или лида и претендует на офигенную ЗП.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
volter9
Какое такое доскондально? Там же в документации написано предупреждение к методу __toString "Внимание Нельзя бросить исключение из метода __toString(). Попытка это сделать закончится фатальной ошибкой": http://php.net/manual/ru/language.oop5.mag...object.tostring

Я лишь дал пару задачек, не для собеседования, просто интересно кто знает а кто нет. Настоящии задачки для мужиков написаны на JS smile.gif

Возьмите любой JS Quiz, я, к примеру, около 50% набрал. Там достаточно хитрые задачки, и по Вашему мнению, они тоже для потехи самолюбия? smile.gif

_____________
Мой блог
SerginhoLD
на все вопросы можно дать один ответ:
"я бы такое говно никогда не написал"

_____________
"internet explorer всех правильней отображает страницы" ©
Hello
volter9, в первом сообщение вопросы лучше.

_____________
VPS от 5$, первые 2 месяца - бесплатно.
vagrand
Неудобно признаваться, но я тоже подумал что буде ошибка из-за использования приватного метода напрямую, а ее то и нет. Объясните кто-нибудь почему так?

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
chee
Цитата (SerginhoLD @ 11.12.2014 - 00:41)
на все вопросы можно дать один ответ:
"я бы такое говно никогда не написал"


думаю это один из правильных ответов на этот вопрос smile.gif

vagrand, потому что ООП модель в php корявая.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
volter9
Цитата (volter9 @ 10.12.2014 - 21:11)
Цитата (bestxp @ 10.12.2014 - 17:34)
по мне так больше нравиться


<?php

Class
Foo {

  private $baz;
  public function __construct()
  {
      $this->baz = 'Hello';
  }

  public function updateBaz(Foo $foo){
      $foo->baz .= ' world';
  }

  public function getBaz(){
    return $this->baz;
  }
}


$first = new Foo();
$second = new Foo();
$first->updateBaz($second);
echo $second->getBaz;


что будет в результате работы и почему

А

echo $second->getBaz;


Не должно быть ли $second->getBaz()? Поля такого как бы нету, да и __get тоже не установлен, в чем подвох тогда? Автоматический accessors (а-ля @synthesize Obj-C или get-set C#, JS) в ООП PHP4?

Никто так и не ответил на мой вопрос. Это разве не должно быть $second->getBaz() или $second->baz?

_____________
Мой блог
vagrand
Лично меня здоровски бесит вот это:


$a = '0.0';
var_dump(empty($a));


Уже несколько раз серьезно на такое нарывался.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
chee
vagrand, всеже правильно. Строка не является пустой, в int или float ты ее не преобразовывал.

А так все работает.

$a = (float) '0.0';
var_dump(empty($a));


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
bestxp
Цитата (vagrand @ 11.12.2014 - 10:52)
Неудобно признаваться, но я тоже подумал что буде ошибка из-за использования приватного метода напрямую, а ее то и нет. Объясните кто-нибудь почему так?

как раз таки там все верно)))
приватное свойство работает в контексте класса

то есть в экземплярах класса Foo можно обращаться к приватным свойствам других экземпляров класса Foo

это порой дает очень много гибкости в коде
Michael
Цитата (ApuktaChehov @ 10.12.2014 - 17:51)
Invis1ble - Я уходил, т.к. работы для меня не было на прежнем месте. А как дело до заявления дошло, сразу работу нашли. По этому и остался. И если честно, на собеседованиях какие-то мутные люди, задавали мутные вопросы. Типа как "получить все ключи массива". Так что тухляк. Хотя ЗП достойные в районе 100 килорублей.

А ты все пока сисадмином в типографии?
Тебя помню не очень там ценили, по зарплате той же, надеюсь после заявления подняли зарплату.

_____________
There never was a struggle in the soul of a good man that was not hard
chee
Цитата (bestxp @ 11.12.2014 - 12:09)
это порой дает очень много гибкости в коде

примеры?

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.