Home > Backend Development > PHP Tutorial > Summary of Troubleshooting Problems with Commonly Used PHP Functions

Summary of Troubleshooting Problems with Commonly Used PHP Functions

伊谢尔伦
Release: 2023-03-11 15:50:02
Original
1139 people have browsed it

常见疑难问题解答
1、rand(min,max)与mt_rand(min,max)的区别如果没有提供可选参数 min 和 max,mt_rand() 返回 0 到 RAND_MAX 之间的伪随机数。例如想要 5 到 15(包括 5 和 15)之间的随机数,用 mt_rand(5, 15)。
很多老的 libc 的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的 rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了 Mersenne Twister 中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比 libc 提供的 rand() 快四倍。
2、PHP echo, print, print_r, printf, sprintf和var_dump函数的区别和使用
1) echo
echo() 实际上不是一个函数,是php语句,因此您无需对其使用括号。不过,如果您希望向 echo() 传递一个以上的参数,那么使用括号会发生解析错误。而且echo是返回void的,并不返回值,所以不能使用它来赋值。
例子:

<?php $a = echo("55nav"); // 错误!不能用来赋值
echo "55nav"; // 55nav 
echo ("55nav"); // 55nav 
echo ("55nav","com"); //发生错误,有括号不能传递多个参数
echo "55nav"," com"," is", " web"; // 不用括号的时候可以用逗号隔开多个值, 会输出 55nav com is web 
echo "55nav is good web."; // 不管是否换行,最终显示都是为一行 55nav is good web.
echo "$fistname com"; // 如果 $firstname = "55nav", 则会输出 55nav com.
echo &#39;$firstname com&#39;; // 由于使用单引号,所以不会输出$firstname的值,而是输出 $firstname com12
?>
Copy after login

2) print
print() 和 echo() 用法一样,但是echo速度会比print快一点点。实际上它也不是一个函数,因此您无需对其使用括号。不过,如果您希望向print() 传递一个以上的参数,那么使用括号会发生解析错误。注意print总是返回1的,这个和echo不一样,也就是可以使用print来赋值,不过没有实际意 义。
例子:

<?php $a = print("55nav"); // 这个是允许的 
   echo $a; // $a的值是14 
?>;
Copy after login


3) print_r 函数——即打印预定义变量的值
print_r函数打印关于变量的易于理解的信息。
语法:mixed print_r ( mixed $expression [, bool return ] )
如果变量是string , integer or float , 将会直接输出其值,如果变量是一个数组,则会输出一个格式化后的数组,便于阅读,也就是有key和value对应的那种格式。对于object对象类同。 print_r有两个参数,第一个是变量,第二个可设为true,如果设为true,则会返回字符串,否则返回布尔值TRUE。
例子:

<?php $a="55nav";
    $c = print_r($a);
    echo $c;  // $c的值是TRUE
    $c = print_r($a, ture); 
    echo $c; // $c的值是字符串55nav
?>
Copy after login


4) printf函数
printf函数返回一个格式化后的字符串。
语法:printf(format,arg1,arg2,arg++)
参数 format 是转换的格式,以百分比符号 (“%”) 开始到转换字符结束。下面是可能的 format 值:
* %% – 返回百分比符号
* %b – 二进制数
* %c – 依照 ASCII 值的字符
* %d – 带符号十进制数
* %e – 可续计数法(比如 1.5e+3)
* %u – 无符号十进制数
* %f – 浮点数(local settings aware)
* %F – 浮点数(not local settings aware)
* %o – 八进制数
* %s – 字符串
* %x – 十六进制数(小写字母)
* %X – 十六进制数(大写字母)
arg1, arg2, arg++ 等参数将插入到主字符串中的百分号 (%) 符号处。该函数是逐步执行的,在第一个 % 符号中,插入 arg1,在第二个 % 符号处,插入 arg2,依此类推。如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入 % 符号之后,由数字和 “\$” 组成。可使用数字指定显示的参数,详情请看例子。
例子:

<?php printf("My name is %s %s。","55", "com"); // My name is 55 com
    printf("My name is %2\$s %1\$s","55", "com"); // 在s前添加1\$或2\$.....表示后面的参数显示的位置,此行显示My name is com 55
?>
Copy after login


5) sprintf函数
此函数使用方法和printf一样,唯一不同的就是该函数把格式化的字符串写写入一个变量中,而不是输出来。
例子:

<?php sprintf("My name is %1\$s %1\$s","55", "com");  //你会发现没有任何东西输出的
    $out = sprintf("My name is %1\$s %2\$s","55", "com");
    echo $out;  //输出 My name is 55 com
?>
Copy after login


6) var_dump函数
功能: 输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。
例子:

<?php $a=100;
    var_dump($a); //int(100)
    $a=100.356;
    var_dump($a); //float(100.356)
?>
Copy after login

 

The above is the detailed content of Summary of Troubleshooting Problems with Commonly Used PHP Functions. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
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