搜索
首页后端开发php教程详细解读PHP比较运算符_PHP教程

详细解读PHP比较运算符_PHP教程

Jul 15, 2016 pm 01:33 PM
phptrue例子名称比较等于结果表格解读详细运算符

表格 1. PHP比较运算符

例子 名称 结果
$a == $b 等于 TRUE,如果 $a 等于 $b。
$a === $b 全等 TRUE,如果 $a 等于 $b,并且它们的类型也相同。(PHP 4 引进)
$a != $b 不等 TRUE,如果 $a 不等于 $b。
$a $b 不等 TRUE,如果 $a 不等于 $b。
$a !== $b 非全等 TRUE,如果 $a 不等于 $b,或者它们的类型不同。(PHP 4 only)
$a $a > $b 大于 TRUE,如果 $a 严格 $b。
$a $a >= $b 大于等于 TRUE,如果 $a 大于或者等于 $b。

如果PHP比较运算符比较一个整数和字符串,则字符串会被转换为整数。如果比较两个数字字符串,则作为整数比较。此规则也适用于 switch 语句。

<ol class="dp-xml"><li class="alt"><span><span class="tag"><span> ?php  </span></span><li>
<span>var_dump(</span><span class="attribute">0</span><span> == "a"); // </span><span class="attribute">0</span><span> == 0 -</span><span class="tag">></span><span> true  </span>
</li>
<li class="alt">
<span>var_dump("1" == "01"); // </span><span class="attribute">1</span><span> == 1 -</span><span class="tag">></span><span> true  </span>
</li>
<li><span>switch ("a") {  </span></li>
<li class="alt"><span>case 0:  </span></li>
<li><span>echo "0";  </span></li>
<li class="alt"><span>break;  </span></li>
<li><span>case "a": // never reached because "a" is already matched with 0  </span></li>
<li class="alt"><span>echo "a";  </span></li>
<li><span>break;  </span></li>
<li class="alt"><span>}  </span></li>
<li>
<span class="tag">?></span><span>  </span>
</li></span></li></ol>

如果运算数的类型不同,则根据下表比较(按顺序)。

表格 2. PHP比较运算符比较不同类型

运算数 1 类型 运算数 1 类型 结果
null 或 string string 将 NULL 转换为 "",进行数字或词汇比较
bool 或 null 任何其它类型 转换为 bool,FALSE object object 内置类可以定义自己的比较,不同类不能比较,相同类和数组同样方式比较属性(PHP 4 中),PHP 5 有其自己的说明

string,resource 或 number string,resource 或 number 将字符串和资源转换成数字,按普通数学比较
array array 具有较少成员的数组较小,如果运算数 1 中的键不存在于运算数 2 中则数组无法比较,否则挨个值比较(见下例)

array 任何其它类型 array 总是更大
object 任何其它类型 object 总是更大

例子 1. 标准数组比较代码

<ol class="dp-xml"><li class="alt"><span><span class="tag"><span> ?php  </span></span><li><span>// 数组是用标准比较运算符这样比较的  </span></li>
<li class="alt"><span>function standard_array_compare($op1, $op2)  </span></li>
<li><span>{  </span></li>
<li class="alt">
<span>if (count($op1) </span><span class="tag"><span> </span><span class="tag-name">count</span><span>($op2)) {  </span><li>
<span>return -1; // $op1 </span><span class="tag"><span> $op2  </span><li class="alt">
<span>} elseif (count($op1) </span><span class="tag">></span><span> count($op2)) {  </span>
</li>
<li>
<span>return 1; // $op1 </span><span class="tag">></span><span> $op2  </span>
</li>
<li class="alt"><span>}  </span></li>
<li>
<span>foreach ($op1 as $</span><span class="attribute">key</span><span> =</span><span class="tag">></span><span> $val) {  </span>
</li>
<li class="alt"><span>if (!array_key_exists($key, $op2)) {  </span></li>
<li><span>return null; // uncomparable  </span></li>
<li class="alt">
<span>} elseif ($val </span><span class="tag"><span> $op2[$key]) {  </span><li><span>return -1;  </span></li>
<li class="alt">
<span>} elseif ($val </span><span class="tag">></span><span> $op2[$key]) {  </span>
</li>
<li><span>return 1;  </span></li>
<li class="alt"><span>}  </span></li>
<li><span>}  </span></li>
<li class="alt">
<span>return 0; // $</span><span class="attribute">op1</span><span> == $op2  </span>
</li>
<li><span>}  </span></li>
<li class="alt">
<span class="tag">?></span><span> </span>
</li></span>
</li></span>
</li></span>
</li></span></li></ol>

PHP比较运算符之三元运算符

另一个条件运算符是“?:”(或三元)运算符 。 例子 2. 赋默认值

<ol class="dp-xml"><li class="alt"><span><span class="tag"><span> ?php  </span></span><li><span>// Example usage for: Ternary Operator  </span></li>
<li class="alt">
<span>$</span><span class="attribute">action</span><span> = (empty($_POST['action'])) <br>? 'default' : $_POST['action'];  </span>
</li>
<li><span>// The above is identical to <br>this if/else statement  </span></li>
<li class="alt"><span>if (empty($_POST['action'])) {  </span></li>
<li>
<span>$</span><span class="attribute">action</span><span> = </span><span class="attribute-value">'default'</span><span>;  </span>
</li>
<li class="alt"><span>} else {  </span></li>
<li>
<span>$</span><span class="attribute">action</span><span> = $_POST['action'];  </span>
</li>
<li class="alt"><span>}  </span></li>
<li>
<span class="tag">?></span><span>   </span>
</li></span></li></ol>

表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

注: 注意三元运算符是个语句,因此其求值不是变量,而是语句的结果。如果想通过引用返回一个变量这点就很重要。在一个通过引用返回的函数中语句 return $var == 42 ? $a : $b; 将不起作用,以后的 PHP 版本会为此发出一条警告。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/446050.htmlTechArticle表格 1. PHP比较运算符 例子 名称 结果 $a == $b 等于 TRUE,如果 $a 等于 $b。 $a === $b 全等 TRUE,如果 $a 等于 $b,并且它们的类型也相同。(PH...
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
高流量网站的PHP性能调整高流量网站的PHP性能调整May 14, 2025 am 12:13 AM

TheSecretTokeEpingAphp-PowerEdwebSiterUnningSmoothlyShyunderHeavyLoadInVolvOLVOLVOLDEVERSALKEYSTRATICES:1)emplactopCodeCachingWithOpcachingWithOpCacheToreCescriptexecution Time,2)使用atabasequercachingCachingCachingWithRedataBasEndataBaseLeSendataBaseLoad,3)

PHP中的依赖注入:初学者的代码示例PHP中的依赖注入:初学者的代码示例May 14, 2025 am 12:08 AM

你应该关心DependencyInjection(DI),因为它能让你的代码更清晰、更易维护。1)DI通过解耦类,使其更模块化,2)提高了测试的便捷性和代码的灵活性,3)使用DI容器可以管理复杂的依赖关系,但要注意性能影响和循环依赖问题,4)最佳实践是依赖于抽象接口,实现松散耦合。

PHP性能:是否可以优化应用程序?PHP性能:是否可以优化应用程序?May 14, 2025 am 12:04 AM

是的,优化papplicationispossibleandessential.1)empartcachingingcachingusedapcutorediucedsatabaseload.2)优化的atabaseswithexing,高效Quereteries,and ConconnectionPooling.3)EnhanceCodeWithBuilt-unctions,避免使用,避免使用ingglobalalairaiables,并避免使用

PHP性能优化:最终指南PHP性能优化:最终指南May 14, 2025 am 12:02 AM

theKeyStrategiestosiminificallyBoostphpapplicationPermenCeare:1)useOpCodeCachingLikeLikeLikeLikeLikeCacheToreDuceExecutiontime,2)优化AtabaseInteractionswithPreparedStateTemtStatementStatementSandProperIndexing,3)配置

PHP依赖注入容器:快速启动PHP依赖注入容器:快速启动May 13, 2025 am 12:11 AM

aphpdepentioncontiveContainerIsatoolThatManagesClassDeptions,增强codemodocultion,可验证性和Maintainability.itactsasaceCentralHubForeatingingIndections,因此reducingTightCightTightCoupOulplingIndeSingantInting。

PHP中的依赖注入与服务定位器PHP中的依赖注入与服务定位器May 13, 2025 am 12:10 AM

选择DependencyInjection(DI)用于大型应用,ServiceLocator适合小型项目或原型。1)DI通过构造函数注入依赖,提高代码的测试性和模块化。2)ServiceLocator通过中心注册获取服务,方便但可能导致代码耦合度增加。

PHP性能优化策略。PHP性能优化策略。May 13, 2025 am 12:06 AM

phpapplicationscanbeoptimizedForsPeedAndeffificeby:1)启用cacheInphp.ini,2)使用preparedStatatementSwithPdoforDatabasequesies,3)3)替换loopswitharray_filtaray_filteraray_maparray_mapfordataprocrocessing,4)conformentnginxasaseproxy,5)

PHP电子邮件验证:确保正确发送电子邮件PHP电子邮件验证:确保正确发送电子邮件May 13, 2025 am 12:06 AM

phpemailvalidation invoLvesthreesteps:1)格式化进行regulareXpressecthemailFormat; 2)dnsvalidationtoshethedomainhasavalidmxrecord; 3)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中