Я знаю, что echo()
и print()
делают то же самое. но print имеет возвращаемое значение (int) 1
.
Возникает вопрос:
- Почему он всегда возвращает (int) 1?
- Что мы можем сделать с возвратом (int) 1?
Я знаю, что echo()
и print()
делают то же самое. но print имеет возвращаемое значение (int) 1
.
Возникает вопрос:
print
является функцией и может использоваться в выражениях, а echo
- это языковая конструкция, которая может использоваться только в начале строки.
echo print(print(print(print(123)))), print(4);
Реальный вариант использования для печати, доступный как функция, позволяет использовать его в выражениях. Например, в качестве функции отладки:
if (($a == $b) and print("It true") and $c) {
Или даже
return TRUE and print("right");
Скорее всего, это означает успех, поэтому вы можете интерпретировать его как значение TRUE
.
В будущем коде вместо выполнения
$i++;
вы можете сделать
$i = $i + print("Hello World!\n");
(могут применяться незначительные побочные эффекты.)
Как уже упоминалось ранее, print является псевдофункцией (возвращает значение, но не является реальной функцией), что делает его использование допустимым в выражениях. Таким образом, вы можете написать причудливый код, подобный этому, чтобы запутать сопровождающих:)
$success = doSomethingThatCanPossiblyFail();
if ($success || !(print "Failed to do that! Not going to do the follow up")){
//success
nowDoTheFollowupThing();
}
Просто убедитесь, что сопровождающие не знают, где вы живете
Это небольшая функция, которая позволяет использовать печать в условиях, например:
if ((print "angry") && (print "mammoth") || (print "will stomp you"))
{
// always executed
}
Теперь, что это такое? Не знаю.
Вы можете вернуть значение в тех случаях, когда вы действительно должны рассчитывать.
Пример:
for ( $i = 0; $i < 10; $i += print "$i<br>" );
Здесь можно комбинировать печать и подсчет.
print всегда возвращает 1, если печать успешно работает. иначе он вернет 0. и в эхо мы можем показать успешную или неудачную функцию печати.
echo print (1);//11
если мы будем печатать только один (1), он напечатает нам 1.
print (1);//1
один пример для лучшего понимания.
function sum($a,$b)
{
echo $a+$b;
if($a+$b == true)
{
return 1;
}
else{ return 0;}
}
//теперь мы вызываем функцию
sum(3,1);//4
echo "<br>";
echo sum(3,1);// 41
echo "<br>";
sum('abc','xyz');// 0
echo "<br>";
echo sum('abc','xyz');//00
этот код работает как функция печати