码迷,mamicode.com
首页 > Web开发 > 详细

怪异的php 语法, 求解!

时间:2014-07-19 08:10:14      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:style   java   color   strong   os   width   

发现一个php用来判断一个字符串是否包子串的返回值与方法 strpos相当的怪异.

看下面的语句:

echo "A1: ".(strpos("csd","c"))."<br>";   //0
echo "A2: ".(strpos("csd","c")>=0)."<br>"; //1
echo "B1: ".(strpos("csd","h",0))."<br>"; //
echo "B2: ".(strpos("csd","h",0)>=0)."<br>"; //1


//期望值是源串"abc"包含子串"a", 此处结果与期望值相同
if(strpos("abc","a")>=0)
{
    echo "a in abc"."<br>"; //a in abc
}
else
{
    echo "a not in abc"."<br>";
}


//期望值是源串"abc"并不包含子串"u", 此处结果与期望值相反

if(strpos("abc","u")>=0)
{
    echo "u in abc"."<br>"; //u in abc
}
else
{
    echo "u not in abc"."<br>";
}



//期望值是源串"a"比子串"abc"小,并且源串"a"并不包含子串"abc", 此处结果与期望值相反

if(strpos("a","abc")>=0)
{
    echo "abc in a"."<br>"; //abc in a
}
else
{
    echo "abc not in a"."<br>";
}



//期望值是源串"u"比子串"abc"小,并且源串"u"并不包含子串"abc", 此处结果与期望值相反

if(strpos("u","abc")>=0)
{
    echo "abc in u"."<br>"; //abc in u
}
else
{
    echo "abc not in u"."<br>";
}


//显示的结果

A1: 0
A2: 1
B1: 
B2: 1
a in abc
u in abc
abc in a
abc in u



定义和用法

strpos() 函数返回字符串在另一个字符串中第一次出现的位置。

如果没有找到该字符串,则返回 false。

语法

strpos(string,find,start)
参数 描述
string 必需。规定被搜索的字符串。
find 必需。规定要查找的字符。
start 可选。规定开始搜索的位置。


PHP的这种判断方法与 C#, JAVA的很不一样.
php里是把源串不包子串,源串小于子串当做空值返回.
经过条件语句,if(strpos("abc","u")>=0) 和 if(strpos("u","abc")>=0), 值又为真了.
我觉得这种形式非常的怪异,初学者和从其它语言(JAVA,C#)转过来学习php的人应该会感到很困惑..

请教,在这里,比如我要判断 字符串"abc" 里包含 "a", 用哪个方法比较好呢?


怪异的php 语法, 求解!,布布扣,bubuko.com

怪异的php 语法, 求解!

标签:style   java   color   strong   os   width   

原文地址:http://blog.csdn.net/aerchi/article/details/37933265

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!