4

首先,我尝试在 Stack Overflow 和 Google 上搜索我为这个问题设置的标题的不同变体。我找不到解决方案。

我对 PHP 相当陌生。新到不知道 usingeq==for 字符串比较之间的区别!

我通常==用来比较 PHP 中的字符串。我很满意。

但我见过eq用于比较字符串的代码。而且我隐约记得有人做了这样的观察,比如‘哦!我曾经==比较字符串。我应该使用eq'.

我只想知道使用==是否可以进行简单的字符串比较?我不是在谈论特殊情况、区分大小写、子字符串或任何花哨类型的字符串比较。只是检查是否appleapple.

==了吗?还是我应该使用eq.


我的错误 :( 非常感谢您清除了我的“未充分研究”的问题!一定是 Perl。看到嵌入 HTML 中的代码我感到困惑,并认为这是嵌入 PHP 的另一种方式。抱歉。

4

5 回答 5

11

PHP中没有eq运算符。然而有=====

===是严格的比较运算符,不会进行类型转换。

==将进行类型转换(例如'' == 0计算为true)。

完整列表请参见比较运算符,PHP 类型转换规则请参见Type Juggling。我能找到的唯一参考eq是作为version_compare().

于 2009-12-07T08:35:32.700 回答
6

附上我的评论:Perleq中的运算符测试字符串是否相等,而仅测试数值相等。==

尽管 PHP 最初是作为 Perl 脚本的集合开始的,但我不认为,他们已经复制了这个运算符,而且这个页面似乎也同意。

于 2009-12-07T08:39:29.617 回答
2

PHP 没有eq operator。您可能正在考虑 Perl,其中eq将两个变量作为字符串进行比较。

PHP 有一个相等运算符 ( ==) 和一个真正的相等运算符 ( ===)。真正的相等运算符 ( ===) 将测试运算符两边的表达式是否相等且类型相同。相等运算符 ( ==) 将尝试将每个表达式强制为相同类型,然后比较它们。

//this is true
'45' == 45

//this is false
'45' === 45

在某些情况下,==当涉及到类型时会做出错误的猜测,所以如果你知道你有两个相同类型的表达式,最好使用===.

于 2009-12-07T08:40:44.110 回答
1

运算符检查两个变量、文字或这==两个编程实体的组合之间是否完美匹配……但它不是类型安全的!

如果你用它来比较字符串,你就是在比较一个字符串和一个正则表达式来找到一个完美的匹配!

但是有很多最强大的方法可以在 PHP 中比较字符串。您只需要知道您要完成的工作....例如:similar_text(), strcasecmp(),strcmp()等。或者您可以使用正则表达式通过调用其中一个函数来比较字符串,并使用ereg()eregi()自己的模式!

于 2009-12-07T08:51:30.597 回答
0

eq在 PHP 中对我来说是新闻,但有严格的比较运算符

$a === $b

查看手册了解详细信息。

于 2009-12-07T08:35:53.027 回答