‘壹’ php 数组与字符串比较问题
<?php
$str = "平行四边形是四边形";
//先替换'四边形'
//替换之后,平行四边形就会变成: 平行<span>四边形</span>
//所以再替换: 平行<span>四边形 为: '<span>平行四边形'
$arr = array('四边形','平行<span>四边形','是');
$to=array('<span>四边形</span>','<span>平行四边形','<span>是</span>');
for($i=0;$i<count($arr);$i++)
{
$str=str_replace($arr[$i],$to[$i],$str);
}
echo $str;
?>
‘贰’ php字符串大小比较问题,太多的疑问!!请求前辈指路!万分感谢!
str2.jpg与str10.jpg比较,前三个字母完全一样,第四个2比1大。
m与M比较,就是比较它们的ASCII码,m比M大。
一般计算机都是这么比较的。
使用自然排序法更符合人们的习惯
str2与str10相比,2比10小。
m与M比较,还是比较ASCII码,与上面一样
‘叁’ php 关于 switch比较 含有 数字的字符串(100元以下)时,无法比较,只执行了case 0。请教高手。
你应该是接收select的值?如果是的话,你可以option可以是汉字,在value用上数字。在追求代码阅读更高可读性时,可以结合注释,备注来。
case 1://100元以下
……(省略)
break;
‘肆’ php如何对比字符串内容
PHP中,可以用双等号(==)或 三等号(===)来比较字符串。
二者的区别是:双等号不比较类型,三等号会比较类型,但不转换类型;用双等号进行比较时,如果等号左右两边有数字类型的值,刚会把另一个值转化为数字,然后进行比较。如果是纯字符串或者NULL时,会转化为0进行比较。同样,大小于号也和等号一样,比较时可能出现不正确的结果。
综上所述,比较字符串可以用PHP的自带函数strcmp和strcasecmp。其中strcasecmp是strcmp的变种,它会先把字符串转化为小写再进行比较。 如下代码:
var_mp(0 == 'Test');
var_mp(0 == '');
var_mp(5 > 'T');
var_mp(strcmp(5, 'T'));
结果为(第1~3结果是不对的,只有第4个是对的)代码如下:
bool(true)
bool(true)
bool(true)
int(-1)
‘伍’ php字符串为什么可以直接比较大小
可能是实验巧合,用逻辑运算符比较字符串时,会先把字符串转换成数字,再比较数值。
比如
"10hello"会转换成整型10
"9.8"会转换成浮点9.8f
转换后再进行比较。
比较字符串或字节数据最好用strcmp之类的字符串函数。
题主是个无脑的猪,选了个错误答案
<?php
$a='10';
$b='9.8';
var_mp($a>$b);
var_mp(strcmp($a,$b)>0);
booleantrue
booleanfalse
所有的资料都会告诉你,字符串绝不能用逻辑运算符。
‘陆’ PHP中字符串比较问题。
PHP中字符串比较有两种方法,分别是strcmp()和strcasecmp()函数。前者区分大小写,后者不区分大小写。
如:
int strcasecmp(string str1,string str2);如果字符串str1大于str2,函数的返回值就大于0;
如果两字符串相等,返回值就等于0;如果字符串str1小于str2,返回值就小于0
‘柒’ PHP 两字符串比较,值相同 对比却不相等
在PHP中,可以用==(双等号)或者 ===(三等号)来比较字符串。两者的区别是双等号不比较类型,三等号会比较类型,它不转换类型;用双等号进行比较时,如果等号左右两边有数字类型的值,刚会把另一个值转化为数字,然后进行比较。这样的话,如果是纯字符串或者NULL时,会转化为0进行比较。同样,大小于号也和等号一样,比较时可能出现不正确的结果。
所以,比较字符串可以用PHP的自带函数strcmp和strcasecmp。其中strcasecmp是strcmp的变种,它会先把字符串转化为小写再进行比较。 如下代码:
var_mp(0 == 'Test');
var_mp(0 == '');
var_mp(5 > 'T');
var_mp(strcmp(5, 'T'));
运行结果:
bool(true)
bool(true)
bool(true)
int(-1)
‘捌’ PHP中字符串和数字 0 比较为什么返回true
我是这么理解的:
if($str==0),字符串和数字比较是否相等, 相当于 把$str 字符串隐性转换为数字,然后再比较,相当于 if( intval($str) == 0 ) 。if($str==0) 判断 和 if( intval($str) == 0 ) 是等价的,而和 if ($str) 是不一样的。if ($str) 可以判断 $str值有没有被初始化。有没有付值,只要付值,就返回true。
当然你也可以使用 $str="字符串";if($str===0){ echo "返回了true.";} ,就是 判断 $str的数据类型 和值 都和0的值 数据类型一样,才可以返回true
‘玖’ 为什么php里字符串可以比较大小字符串也不像数字那样有个明确的值啊,所以比较的是字符串的什么属性
用strcmp函数。
strcmp() 函数比较两个字符串。
注释:strcmp() 函数是二进制安全的,且对大小写敏感。
echo strcmp("Hello world!","Hello world!");
‘拾’ php关于字符串比较的问题
php是弱类型语言,和java不同任何类型的变量都会被php自动转换成相符合的
不同变量类型进行比较的时候,PHP有内部机制进行转换,再加以比较。
0=='G'
是把‘G''转化成整型再进行比较,'G'转成整型是默认值0,所以结果就是 true 了。
但如果'1 G'转换,就会是值1
如果不熟悉内部机制,在比较之前,尽量自己转化为相同类型再进行比较。
比较安全的做法就是用 === (三个等于号),这样不仅比较内容,还比较类型,如果类型不一致就按 false 处理。