--5

Это прекрасный образец рака мозга, ящитаю:

<?php
function turn($x)
{
     $y = abs($x);
     if ($y == $x)    
         return "-$y";    
     else        
         return "$y";    
}
?>

You can use this code:

<?php
echo turn(-5) + turn(10);
?>

The output is:

-5

;
Because 5 + -10 = -10

Цитата — из пользовательского комментария к функции abs языка PHP. Для тех, кто далёк от программирования, побуду Капитаном Очевидностью.

Функция меняет знак числа (т. е. было «-5», надо сделать «5», было «2», надо сделать «-2»), для этого она сранивает число с его абсолютным значением и, если оно совпадает (значит число положительное), выводит это число с приделанным символом «-», если нет — то возвращает абсолютное значение.

Правильный ответ:

function turn($x) { return -$x }

не стоит того, чтобы оформлять его в функцию.

Что имел ввиду автор, когда писал «Because 5 + -10 = -10» я не знаю, надо Смирнова спросить, он понимает язык идиотов.

Комментарии 14

masterspammer.livejournal.com № 6
В php много рака мозга. Одна система именования чего стоит — где-то functionName а где-то function_name. И вот это ещё — http://www.php.net/manual/en/array.sorting.php
Евгений Степанищев (bolknote.ru) автор № 7
Да, я в курсе, что с именованием там, беда, всё-таки писал на нём много лет. Конкретно именование — очень просто решаемый вопрос, обвязать всё объектами и сделать нормальные методы.
jankkhvej (jankkhvej.blogspot.com) № 9
Вот вам комментируемые руководства, ага.
Сколько раз в эти комметарии не заглядывал, столько раз удивлялся что так сделано, а не как в Perl и CPAN, например.
Ну да, написать книгу по Perl'у с умными комментариями и нетривиальными примерами не каждый может, зато с PHP любой может прославится на весь мир, просто оставив комментарий на странице руководства.
Аудиторию, опять же, сравнить можно :)
Евгений Степанищев (bolknote.ru) автор № 10
Там сильно не хватает модерации. За годы оно превратилось в сборник маразмов.
jankkhvej (jankkhvej.blogspot.com) № 11
По-человечески, модерации не хватает и на stackoverflow, и тем более на хабрахабре. Но они же не официальная документация. Это как бы взять и разрешить всем ГОСТы комментировать. Или RFC.

А теперь поди найди Геракла, чтоб расчистить-то…
greli.livejournal.com № 12
Может быть всё-таки return -abs($x)?
Евгений Степанищев (bolknote.ru) автор № 14
Ну, я так полагаю (по названию функции), что она должна менять знак числа.