Завожу такую вот рубрику.
Не буду здесь говорить ничего лишнего (типо ааа иди гугли школоло), буду просто отвечать на странные для понимающих вопросы и вполне нормальные для осваивающих.
print, echo и return
Разберем это на примере функции, т.к return актуален при работе с функциями
Разберем вполне частую ситуацию: нам нужна функция, которая будет получать откуда-то значение, и в зависимости от того, в каком контексте мы его используем она должна его либо выводить, либо возвращать
Собственно вот оно и отличие:
echo, print — это вывод значения
return — возвращение значение
С возвращенным значением мы можем делать что угодно: приобщить его к вычислениям, вывести, передать в другую функцию, ну с выводом думаю все понятно.
Разберем на примере
1 2 3 4 5 6 7 8 9 10 | function getValue ( $value, $print = false ) { if ( $print === 1) echo $value; else return $value; } getValue('Hello world', true); //вывод од echo getValue('Hello world//возврат значения |
Итак разбираем по строкам.
Параметры функции:
$value (string) — значение, которое мы хотим обработать
$print (bool) — некий указатель того, что мы будем делать. По умолчанию равен false
Наша функция выводит либо возвращает значение, в зависимости от того, что мы передаем в параметре print.
Далее мы два раза вызываем функцию: в первом случае передаем в нее print = true, и она выводит значение, во втором случае мы сами выводим то, что возвращает нам функция.
Еще раз:
echo, print — это вывод значения
return — возвращение значение
я если честно не понимаю зачем классы в php, а точней само ОПП. Я могу понять, если надо вывести несколько раз определенный код (например несколько переменных) и я могу понять, то что они могут бвть нужны для защиты от аттак на сам код все больше понять я не могу.
Где на вашем сайте ссылка для ответа?
jcmax, в этом посте нет ООП. ООП — это классы, методы, объекты… А тут только функции. А функции не являются ООП
Обнаружил, что данный пример работает только, если в условии if стоит вместо тождественности равно (==). То есть $print == 1 тогда выводится Hello World два раза.
иииии где фидбэк?
где обещаное автором «Не буду здесь говорить ничего лишнего (типо ааа иди гугли школоло)» ?
или он предупредил всех что бы шли сразу гуглить и не задавали вопросы сразу?
видимо так, да?
вот Игорь написал что там трабла с приравниванием. И где ответ автора?
Вот я чет всеравно не понял сути return блин буду искать дальше
извините за батхерд
Наткнулся на ещё один интересный метод вывода
Если в тексте HTML нужно тупо отобразить переменную, то будет работать
И где ответ на вопрос, что такое return??? его спокойно можно заменить echo и ошибки не будет! Статья к сожалению ужасная! я надеялся получить ответ…
Афтар, если ты решил выдавить объяснения для «пока непонимающих», то у тебя нифига не получилось, сплошная лажа. Если хочешь, чтоб статья была реально дельная, то представь, что ты объясняешь тему своей беззубой бабушке. Постарайся подобрать такие слова, которые поймёт даже она, в противном случае (как сейчас) твой высер тут бесполезен.
Действительно, очень запутанная тема.
Я сейчас изучаю PHP с самых азов и это мой первый язык (HTML и CSS не беру в расчет), поэтому опыта вообще нет и никогда не было. Недавно затронул эту тему и тоже искал очевидную разницу между echo и return ! Так вот — опишу различие ,которое я понял:
У нас есть функция, где $a = 4 и $b = 4.
function name ($a = 4, $b = 4) {
return $a + $b; // ставим return вместо echo !!!!!!!
} // Потом поменяйте return на echo и увидите разницу.
$c = name( ); // Пусть $с будет равно тому, что посчитает функция- это 8.
echo $c * 2; // А теперь САМОЕ главное!!!!!
Мы умножаем $c (которая = нашей функции то есть 8) * на 2. и????
ПОЛУЧАЕМ 16 !!!
Потому что return получает ответ от функции цифру 8
$c = name( ); и здесь return присваивает эту 8-ку переменной $c.
теперь $c = 8.
и мы можем умножать, делить, складывать и вычитать из $c все что захотим )))
а echo только выводит на экран, но не позволяет потом манипулировать с переменной .