我的一本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
这个怎么解释?
解决方案 »
- require once的问题
- PHP的一个语法问题
- load data infile 的文件路径问题
- 时间类
- 采集程序 = > 竟然采到...
- 在使用cakephp框架的时候, 出现如帖子中所示的错误是什么原因呢?
- 太漂亮了!这个相框是用PHP做的吗?
- 请问在php查询页面中,如何实现上页,下页,首页,尾页跳转功能?
- 请问oracle 和php冲突怎么处理呢?
- PHP数组循环
- [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