Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Код на внимательность

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
koras
Отправлено: 05 Июня, 2014 - 16:00:25
Post Id



Частый гость


Покинул форум
Сообщений всего: 224
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Полезно для новичков
Когда пишешь много кода и делаешь безобидные ошибки, которые тяжело найти но при этом эти ошибки на первый взгляд не видно.
Вот решил опубликовать подобный код и за одно решил увидеть ваш, если такой попадается.

Читаем внимательно и думаем какой здесь будет ответ
PHP:
скопировать код в буфер обмена
  1.  
  2. $val =false;
  3. if($val=true)
  4. return false;
  5. return true;
  6.  

Цитата:
Варианты ответа:
1) true
2) false
3) ошибка в коде

Обычно такие задания дают при собеседовании или просто попадаются в коде.
Только код не воспроизводите на интерпретаторе, просто подумайте логически почему ответ такой ;)

(Отредактировано автором: 05 Июня, 2014 - 16:05:33)

 
 Top
DelphinPRO
Отправлено: 05 Июня, 2014 - 16:07:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




требую более интересных и заковыристых задач Улыбка

Здесь ответ Улыбка (Отобразить)

(Отредактировано автором: 05 Июня, 2014 - 16:17:21)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
koras
Отправлено: 05 Июня, 2014 - 16:12:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 224
Дата рег-ции: Окт. 2009  


Помог: 0 раз(а)




Да, ответ правильный. Только я не знаю можно его скрыть под спойлер.
Пускай другие тоже подумают.
Тоже хочу заковыристых задач )
Эта задача пришла ко мне когда писал быстро код и забыл поставить '=' а был уверен, что поставил и долго не мог понять почему всё работает не так как задумано.

Я положил начало в этой теме. Люди пишите Ваши задачи, у кого есть какие. Мозг надо развивать.

(Отредактировано автором: 05 Июня, 2014 - 16:12:55)

 
 Top
LIME
Отправлено: 05 Июня, 2014 - 17:09:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




koras для того чтоб не повторять этой частой ошибки выработай привычку записывать так

тут синтаксическая ошибка и ты не проморгаешь
(Добавление)
DelphinPRO пишет:
Если это просто код, то верного ответа в принципе нет. Возвращать некуда, и ошибки нет.
можно возвращать в подключающий файл при инклуде
 
 Top
esterio
Отправлено: 06 Июня, 2014 - 11:20:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




DelphinPRO пишет:
требую более интересных и заковыристых задач

https://www[dot]elance[dot]com/landing/skill-tests
 
 Top
EuGen Администратор
Отправлено: 06 Июня, 2014 - 17:01:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




DelphinPRO пишет:
требую более интересных и заковыристых задач


Что вернёт функция foo():
PHP:
скопировать код в буфер обмена
  1. function foo()
  2. {
  3.     return $result = bar() ? $result : false;
  4. }
  5.  
  6. function bar()
  7. {
  8.     return "baz";
  9. }

?

Если кто-нибудь ещё не видел, то
EuGen пишет:
Поясните, почему в PHP следующие две программы дадут одинаковый результат (3) :

и
CODE (php):
скопировать код в буфер обмена
  1. $x = 1;
  2. $y = $x + $x + $x++;


Помочь понять это (а, может, наоборот, запутать) вам может следующая конструкция:
CODE (php):
скопировать код в буфер обмена
  1.   $x = 1;
  2. @ $y = $x + $x++;
  3. var_dump($y); // int(2)



-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 06 Июня, 2014 - 17:06:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




EuGen а в чем закавыка?
я даже проверил для верности(мало ли)
то ли нас тут уже забаловали задачами толи кто-то не уважает DelphinPRO )))
(Добавление)
навроде той
второй )
 
 Top
EuGen Администратор
Отправлено: 06 Июня, 2014 - 17:08:44
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




LIME пишет:
EuGen а в чем закавыка?

Ни в чём. Первый - весьма простой вопрос. Требует базовых знаний. Второй - ну, для разнообразия. Если кто-либо не видел и кому интересно посмотреть глубже.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
DelphinPRO
Отправлено: 06 Июня, 2014 - 17:11:24
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




EuGen пишет:
Что вернёт функция foo():


Спойлер (Отобразить)


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
EuGen Администратор
Отправлено: 06 Июня, 2014 - 17:12:46
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




DelphinPRO пишет:
Спойлер (Отобразить)

Неверно.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 06 Июня, 2014 - 17:13:08
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




DelphinPRO Не понял ннеееет!!!!
(Добавление)
с фигали ей в переменную записываться
это еслиб
PHP:
скопировать код в буфер обмена
  1. return $result = bar() ? : false;

(Добавление)
EuGen прошу прощения получается))
 
 Top
DelphinPRO
Отправлено: 06 Июня, 2014 - 17:27:29
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




блин, тогда я не въезжаю. ) почему не происходит присваивания?


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 06 Июня, 2014 - 17:32:06
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




сначала происходит вычисление условия и решения какую часть присваивать
выясняем что первую
а там неопределенная переменная которая значит тогда null (как любая неопределенная)
вот null уже и присваивается
PHP:
скопировать код в буфер обмена
  1. if (bar()){
  2.    $var = $result;
  3. }else{
  4.     $var = false;
  5. }
  6.  $result = $var;
  7. return  $result;

(Добавление)
ну братан ну неожидал! ))
 
 Top
DelphinPRO
Отправлено: 06 Июня, 2014 - 17:34:27
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




а так
PHP:
скопировать код в буфер обмена
  1. return ($result = bar()) ? $result : false;


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 06 Июня, 2014 - 17:35:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




а так это другой пример и можно проще)
выше показал
(Добавление)
или погоди...тебя что отсутствие скобок смутило?
ну ясн...так оно...можно скобки опускать
тернарный оператор поприоритетнее
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Прочее »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB