$data = file_get_contents('php://input');
echo $data;
Это сработало для меня.
На самом деле это не причина ... это просто старое соглашение.
Чтобы сэкономить место, программисты часто делали окончательную математику в обратной линии, а не на своей собственной линии, а parens обеспечивали бы в основном там, чтобы было легче увидеть, что это единственный оператор, который возвращается, например:
return (x+i*2);
вместо
int y = x+i*2;
return y;
Скобки стали привычкой и он застрял.
Я работал, по крайней мере, с одним программистом, который думал, что return был специальным вызовом функции, и был удивлен, когда увидел, что мой код выполнил без парнеров.
Parenthesis в операторе return указывает компилятору, что вы намерены вернуть это значение в стек, а не в память.
В старые времена это было строго соблюдено (обычно), но сегодня большинство компиляторов воспринимают это как подсказку.
Это то, что я часто делаю, поскольку ошибка может повредить что-либо, возвращаемое с помощью ссылки на память, но обычно не влияет на возвращаемую переменную в стеке.
Использование стека для переходных переменных также сокращает использование памяти и обычно делает функцию call / return более быстрой, потому что это то, для чего предназначен стек, временные данные / переменные.
Есть несколько причин:
Возможно, это обычай - в конце концов, люди, которые принесли нам Unix и C, пришли из проекта Multics. Мультики были написаны в PL / I, а в PL / I скобки обязательны.
Мой личный стиль - использовать круглые скобки, если существует сложное выражение; например,
return (a + b);
, но не использовать их, если выражение является простым членом
return a;
Я не могу сказать, почему я так делаю; что-то, что я выбрал давно.
Кстати, я думаю, что это выглядит как вызов функции, например:
return(a); // ugh
невероятно уродлив и просто ошибается.
В исходной спецификации C для возвращаемого значения требуются скобки. В то время как современные компиляторы C и стандарт ANSI C их не требуют, наличие круглых скобок не влияет на возвращаемое значение и программисты иногда по-прежнему включают их по привычке, незнанию со стандартами, для соответствия стилистическому соглашению, которое их требует, или, возможно, для обратной совместимости.
Как часто бывает при использовании круглых скобок, я думаю, что это просто для читаемости (например, Ruby поддерживает вызовы методов без круглых скобок, включающих аргументы, но последние книги и статьи советуют иначе).
Возможно, это связано с тем, что в скобках он больше похож на вызов функции, т. е. больше похож на остальную часть кода?
Или просто все, что делает каждый, только потому, что все это делают: )
При возврате -1, как в вашем примере, я думаю, что это более читаемо в скобках, потому что минус более заметен:
return 1
или
return -1
или
return (-1)
Использование круглых скобок в операторе return показывает недостаточное понимание синтаксиса C/C++
. Это так просто. Но это не так плохо, как положить все в фигурные скобки:
int foo(int x) {
if (x) {
return (-1);
}
else {
return (0);
}
}
Так много программистов делают это. Если кто-то из вас читает это, возможно, вам захочется объяснить.
Практический, но маловероятный, мотив заключается в том, что вы помещаете скобки вокруг значения, вы можете определить return как макрос, а затем вставить некоторый код ведения журнала, чтобы просмотреть все ваши возвращения.
return x+i*2;
короче? – TonyK 21 January 2011 в 20:16