对于比较运算符“==”,如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。
所以,如下字符串中,转换为数值之后相等而输出1。
<phpecho ("0"=="000000");//1
echo ("00000"=="000000");//1
echo ("12345"=="012345"); //1
echo ("10"=="1e1"); //1
>
而
echo ("12345n"=="012345n");由于比较的表达式中两边都含有字母,所以均当做字符串来处理而没有进行转换,所以没有输出1。
另外,当其中的涉及到数字内容的字符串要进行转换的时候,其开始的值决定转换后的值,比如:
echo (12345=="012345 我和我的小伙伴们都惊呆了。"); //1echo (12345=="01234n5"); // 不会输出1
echo ("12345"=="012345 我和小伙伴们都惊呆了n"); // 这样也不会输出1
PHP中如何判断一个字符串中是否有某个字符,如下:
PHP语言是一个功能强大的嵌入式HTML脚本语言,它的易用性让许多程序员选择使用。PHP判断字符串的包含,可以使用PHP的内置函数strstr,strpos,stristr直接进行判断也可以通过explode函数的作用写一个判断函数。
1 strstr: 返回一个从被判断字符开始到结束的字符串,如果没有返回值,则不包含
代码如下:
< php
/如手册上的举例/
$email = 'user@examplecom';
$domain = strstr($email, '@');
echo $domain;
// prints @examplecom
>
2 stristr: 它和strstr的使用方法完全一样唯一的区别是stristr不区分大小写
3 strpos: 返回boolean值FALSE和TRUE不用多说用 “===”进行判断strpos在执行速度上都比以上两个函数快,另外strpos有一个参数指定判断的位置,但是默认为空意思是判断整个字符串缺点是对中文的支持不好
PHP判断字符串的包含代码如下:
$str= 'abc';
$needle= 'a';
$pos = strpos($str, $needle);
4 用explode进行判断
PHP判断字符串的包含代码如下:
function checkstr($str){
$needle = "a";//判断是否包含a这个字符
$tmparray = explode($needle,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}
我在想,你为什么不直接用
$a = strlen("abcde","UTF8");echo "这是 $a 位的内容";
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)