Generally speaking, dynamic output of HTML content in PHP is achieved through print and echo statements. In actual use, the functions of print and echo are almost exactly the same. It can be said that wherever one can be used, the other can also be used. However, there is still a very important difference between the two: in the echo function, multiple strings can be output at the same time, while in the print function, only one string can be output at the same time. At the same time, the echo function does not require parentheses, so the echo function is more like a statement than a function.
Neither echo nor print are functions, but language constructs, so parentheses are not necessary.
Their difference is:
(1) echo can output multiple strings , like the following:
echo 'a','b','c';
If you insist on adding parentheses, please note that writing echo ('a','b','c'); is wrong. It should be written as:
echo ('a'),('b'),('c');
It has no function-like behavior, so it cannot be used in the context of a function
(2) print can only output a string, it can behave like a function , for example, you can use it as follows:
$ret = print 'Hello World';
So it can be used in more complex expressions.
In addition, echo is relatively efficient!
Look at the following code:
<?php $a='hello ';$b='php world!';echo $a,$b.'<br />';//echo 可以用逗号分隔字符串变量来显示 print $a.$b.'<br />';//而print不能使用逗号,只能用点号分隔, //print $a,$b.'<br />';//这里使用逗号时报错。 ?>
Analysis summary:
echo command is the same as print command, there is no difference
There is a difference between the echo function and the print function.
echo() No return value, same as echo command
print() has a return value, if successful, it returns 1, if false, it returns 0.
printf() is similar to sprintf(), both formatted output. The difference is that the former outputs to standard output, and the latter outputs to variable
looks like:
echo <<< EOT EOT; print <<< EOT EOT;
has the following meaning:
<<< operator, the content between the custom delimiters is regarded as a string, and the variables in between can be processed
EOT Custom delimiter, the end must be at the beginning of the line
I believe that what is described in this article has certain reference value for everyone to better master PHP programming.
echo
can output multiple values at one time, separated by commas. echo is a language construct, not a real function, so it cannot be used as part of an expression.
print()
The function print() prints a value (its parameter) and returns true if the string is successfully displayed, otherwise it returns false.
print_r()
can simply print out strings and numbers, while arrays are displayed as a bracketed list of keys and values, starting with Array. But the results of print_r() outputting Boolean values and NULL are meaningless, because they all print "\n". Therefore, using the var_dump() function is more suitable for debugging.
Four ways to output strings. echo
print()
printf()
print_r()
echo
can output multiple values at one time, separated by commas . echo is a language construct, not a real function, so it cannot be used as part of an expression.
Correct syntax: echo "Hello", "World";
Wrong syntax: echo ("Hello", "World");
print()
The function print() prints a Value (its argument), returns true if the string was successfully displayed, false otherwise. For example, if (!print("Hello, World")){
die("you are not listening to me");
}
printf()
printf () originates from printf() in C language. This function outputs a formatted string.
Syntax: printf(format,arg1,arg2,arg++)
format specifies the string and how to format the variables in it;
arg1, arg2, ++ and other parameters will be inserted into the main string Semicolon (%) symbol. This function is executed step by step. At the first % sign, arg1 is inserted, at the second % sign, arg2, and so on.
Example: ?php
$str = "Hello";
$number = 123;
printf("%s world. Day number %u", $str,$number);
?>
#Results======
Hello world. Day number 123
If there are more % symbols than arg parameters, then you must use placeholders. Placeholders are inserted after the % sign and consist of numbers and "\$". See example 3.
Example: ?php
$number = 123;
printf("With 2 decimals: %1\$.2fbr />With no decimals: %1\$u" ,$number);
?>
#Result
With 2 decimals: 123.00
With no decimals: 123
print_r() and var_dump()
print_r() can simply print out strings and numbers, while arrays are displayed as a bracketed list of keys and values, starting with Array. For example, $a = array('name' => 'Fred', 'age' => '15', 'wife' => 'Wilma');
print_r($a);
Output: Array
{
[name] => Fred
[age] => 15
[wife] => ; The same goes for Wilma
}
objects. For example, class P {
var $name = 'nat';
// ...
}
$p = new P;
print_r($p);
Output: Object
{
[name] => nat
}
but print_r( ) The results of outputting Boolean values and NULL are meaningless, because they all print "...the rest of the full text>>