Home > Backend Development > PHP Tutorial > Detailed explanation of the differences and usage between PHP echo, print, printf, sprintf functions_PHP Tutorial

Detailed explanation of the differences and usage between PHP echo, print, printf, sprintf functions_PHP Tutorial

WBOY
Release: 2016-07-13 17:17:52
Original
1285 people have browsed it

1. echo function:

The output function is a command and cannot return a value. Echo can be followed by many parameters, separated by semicolons, such as:
echo $myvar1;
echo 1,2,$myvar,"bold";


2. print function:

is a function that can return a value and can only have one parameter.

int print (string arg)

Outputs arg . Returns 1 , always.


3. printf function:

int printf ( string format [, mixed args [, mixed ...]] )

Produces output according to format , which is described in the documentation for sprintf() .

Returns the length of the outputted string.


Format the text and output it, such as:
$name="hunte";
$age=25;
printf("my name is %s, age %d", $name, $age);


4. sprintf function:
string sprintf ( string format [, mixed args [, mixed ...]] )

Returns a string produced according to the formatting string format .


is similar to printf, but does not print, but returns formatted text. The rest is the same as printf.


5. Explain the printf() function in detail:

The calling format of the printf() function is:
printf("", );


%d Decimal signed integer
%u Decimal unsigned integer
%f Floating point number
%s String
%c Single character
%p Pointer value
%e Floating point number in exponential form
%x, %X Unsigned integer expressed in hexadecimal
%o Unsigned integer expressed in octal
%g Automatically select the appropriate representation Law


Description:

(1). You can insert numbers between "%" and letters to indicate the maximum field width.

①For example: %3d means outputting a 3-digit integer, which is not enough to be right-aligned.

②%9.2f means that the output field width is a floating point number of 9, in which the decimal place is 2, the integer place is 6, the decimal point occupies one place, and it is not enough for 9 digits to be right-aligned.

③%8s means outputting a string of 8 characters, which is not enough to right-align.

④If the length of the string or the number of integer digits exceeds the specified field width, it will be output according to its actual length.

⑤Floating point number, if the number of digits in the integer part exceeds the specified integer bit width, it will be output as the actual integer digits;

⑥ If the number of decimal places exceeds the specified decimal place width, the output will be rounded according to the specified width.

⑦ If you want to add some 0 before the output value, you should add 0 before the field width item.

For example: %04d means that when outputting a value less than 4 digits, 0 will be added in front to make the total width 4 digits.

⑧If floating point numbers are used to represent the output format of characters or integers, the number after the decimal point represents the maximum width, and the number before the decimal point represents the minimum width.

For example: %6.9s means displaying a string with a length of not less than 6 and not greater than 9. If it is greater than 9, the content after the 9th character will be deleted.


(2). You can add a lowercase letter l between "%" and the letter to indicate that the output is a long number.

①For example: %ld means output long integer

②%lf means outputting double floating point number


(3). You can control whether the output is left-aligned or right-aligned, that is, adding a "-" sign between "%" and the letter indicates that the output is left-aligned, otherwise it is right-aligned.

 ①For example: %-7d means outputting a 7-bit integer left-aligned

 ②%-10s means output 10 characters left aligned


(4). Some special characters

①/n Line feed
②/f Clear screen and change page
③/r Enter
④/t Tab character
⑤/xhh means an ASCII code is expressed in hexadecimal,
 ⑥where hh is 1 to 2 hexadecimal numbers

6. printf() : examples

Example 1: various examples

Copy code The code is as follows:

$n =  43951789; 
$u = -43951789; 
$c = 65; // ASCII 65 is 'A' 

// notice the double %%, this prints a literal '%' character 
printf("%%b = '%b'/n", $n); // binary representation 
printf("%%c = '%c'/n", $c); // print the ascii character, same as chr() function 
printf("%%d = '%d'/n", $n); // standard integer representation 
printf("%%e = '%e'/n", $n); // scientific notation 
printf("%%u = '%u'/n", $n); // unsigned integer representation of a positive integer 
printf("%%u = '%u'/n", $u); // unsigned integer representation of a negative integer 
printf("%%f = '%f'/n", $n); // floating point representation 
printf("%%o = '%o'/n", $n); // octal representation 
printf("%%s = '%s'/n", $n); // string representation 
printf("%%x = '%x'/n", $n); // hexadecimal representation (lower-case) 
printf("%%X = '%X'/n", $n); // hexadecimal representation (upper-case) 

printf("%%+d = '%+d'/n", $n); // sign specifier on a positive integer 
printf("%%+d = '%+d'/n", $u); // sign specifier on a negative integer 
?>  

 

The printout of this program would be:  
%b = '10100111101010011010101101' 
%c = 'A' 
%d = '43951789' 
%e = '4.39518e+7' 
%u = '43951789' 
%u = '4251015507' 
%f = '43951789.000000' 
%o = '247523255' 
%s = '43951789' 
%x = '29ea6ad' 
%X = '29EA6AD' 
%+d = '+43951789' 
%+d = '-43951789'

例2: string specifiers
复制代码 代码如下:

$s = 'monkey'; 
$t = 'many monkeys'; 

printf("[%s]/n",      $s); // standard string output 
printf("[%10s]/n",    $s); // right-justification with spaces 
printf("[%-10s]/n",   $s); // left-justification with spaces 
printf("[%010s]/n",   $s); // zero-padding works on strings too 
printf("[%'#10s]/n",  $s); // use the custom padding character '#' 
printf("[%10.10s]/n", $t); // left-justification but with a cutoff of 10 characters 
?>  

The printout of this program would be:  
[monkey] 
[    monkey] 
[monkey    ] 
[0000monkey] 
[####monkey] 
[many monke]

例3:zero-padded integers
复制代码 代码如下:

$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day); 
?> 

例4:formatting currency
复制代码 代码如下:

$money1 = 68.75; 
$money2 = 54.35; 
$money = $money1 + $money2; 
// echo $money will output "123.1"; 
$formatted = sprintf("%01.2f", $money); 
// echo $formatted will output "123.10" 
?>

例5: sprintf() : scientific notation
复制代码 代码如下:

$number = 362525200; 

echo sprintf("%.3e", $number); // outputs 3.63e+8 
?> 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/621718.htmlTechArticle1. echo函数: 输出函数,是命令,不能返回值。echo后面可以跟很多个参数,之间用分号隔开,如: echo $myvar1; echo 1,2,$myvar,"bbold/b"; 2. print函...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template