我的一本PHP的书上讲max函数,说php会将非数值的字符串当成0,如果多个参数都求值为0且是最大值则返回数值的0.但是所给的3个例子,如下:
echo max(0,"happy"); //结果返回0
echo max("happy",0); //结果返回happy
echo max("happy",0,"help"); //返回help
这个怎么解释?
echo max(0,"happy"); //结果返回0
echo max("happy",0); //结果返回happy
echo max("happy",0,"help"); //返回help
这个怎么解释?
解决方案 »
- 【求助】日期搜索显示的问题
- PHP,JS 的基本时间控制问题
- 如此简单的strpos为什么不能执行?
- 没有想法了,帮忙进来看看谢谢
- 如何实现对输出的数据做图形统计?
- 运用文本数据库登陆的问题出错了,很郁闷.求助各位大哥大姐予以伸出援助之手!急救!我想给你们高分,但系统只有这么多,没有办法!
- 请教各位一个问题好吗
- 求图片效果代码!!!!
- 如何PHP设置字符集,在线等待
- 能引用include 所包含文件里的变量吗?
- [100分求助]xp sp3+php5.2+mysql5.0+apache2.2+phpmyadmin3.2无法加载mysql扩展问题!
- Something went wrong - -32300 : transport error - HTTP status code was not 200
Note: PHP will evaluate a non-numeric string as 0 if compared to integer, but still return the string if it's seen as the numerically highest value. If multiple arguments evaluate to 0, max() will return a numeric 0 if given, else the alphabetical highest string value will be returned.
-----------------
红色这句说的就是返回字符串。
你的第三个例子应该是有两个字符串,返回最后比较的一个。
既max(-10,"happy" 则返回happy;
“如果多个参数都求值为 0 且是最大值,max() 会返回其中数值的 0,如果参数中没有数值的 0,则返回按字母表顺序最大的字符串。”
那岂不第3种情况都返回0?
echo max(0, 'hello'); // 0
echo max('hello', 0); // hello
echo max(-1, 'hello'); // hello刚刚试了一下
如果0放在所有字母的前面,则输出0,如果不是在输出字母表顺序最大的一个
echo(0, "happy", "help") // 输出0
echo("happy", "help", 0) // 输出help
echo(0, -1, "help") //输出0
echo(-1, 0, "help") //输出0
echo(-1, "help", 0) //输出help