为什么PHP中 echo ("00000"=="000000"); 返回的值为1? 五个0与六个0的字符串居然相等!

为什么PHP中 echo ("00000"=="000000"); 返回的值为1? 五个0与六个0的字符串居然相等!,第1张

  对于比较运算符“==”,如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。

  所以,如下字符串中,转换为数值之后相等而输出1。

<php

echo ("0"=="000000");//1

echo ("00000"=="000000");//1

echo ("12345"=="012345"); //1

echo ("10"=="1e1"); //1

>

  而

echo ("12345n"=="012345n");

  由于比较的表达式中两边都含有字母,所以均当做字符串来处理而没有进行转换,所以没有输出1。

  另外,当其中的涉及到数字内容的字符串要进行转换的时候,其开始的值决定转换后的值,比如:

echo (12345=="012345 我和我的小伙伴们都惊呆了。"); //1

echo (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 位的内容";

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/12179591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存