有时判断的时候会发现if(!a==b)与if(a!=b)竟然有区别;
有几次用前一种方法没有得到我想要的结果,想问一下两者的区别。
补充:
不好意思,之前写错了。
应该是a!=b 与!a==b 之间有没有区别?
(难道之前不一样,是因为自己写错了?!)
回复内容:
有时判断的时候会发现if(!a==b)与if(a!=b)竟然有区别;
有几次用前一种方法没有得到我想要的结果,想问一下两者的区别。
补充:
不好意思,之前写错了。
应该是a!=b 与!a==b 之间有没有区别?
(难道之前不一样,是因为自己写错了?!)
楼主写错了吧? 注意是 ! $a == $b
, 不是 ! $a = $b
虽然 PHP 运算符优先级里!
优先级高于 =
,但是允许一种很奇怪的语法,就是 ! $a = $b
,这时候会先将 $b
赋值给 $a
, 然后 ! $a
,那这条语句永远返回的都是 $b == false
一样的结果。和 $a != $b
完全不能相提并论。
而 ! $a == $b
的话 应该会和 $a != $b
相同吧…
补充,按我的理解 ! $a == $b
应该会和 $a != $b
效果是相同的,暂时没有想到一个不一样的特例,不过PHP里有很多值可以与Boolen有一样的意思,难免有些在转换中出现你说发生的特殊情况。列一下PHP与false等价的情况:
布尔值 FALSE 本身
整型值 0(零)
浮点型值 0.0(零)
空字符串,以及字符串 "0"
不包括任何元素的数组
不包括任何成员变量的对象(仅 PHP 4.0 适用)
特殊类型 NULL(包括尚未赋值的变量)
从空标记生成的 SimpleXML 对象
比如 $a = 0
,$b = 1
,那么:
$a = $b
是 1 ,!1 是 false,所以 if (!$a = $b) 是 false$a != $b
是 1 != 0 明显是 true
if (!$a = $b) 等价于 if (!($a = $b)) 。
顺便,哪个老师教你这种写法的?
a != b
!a = b
一个等号是在赋值吧
代码风格很重要
// a和b作为字符串, 两者值应该是不相等的; 但是他们对应的布尔值都是false $a = '0'; $b = ''; $a != $b; // true !$a == $b; // false
输出结果如下

AphpdependencyInjectionContaineeRisatool That ManageSclassDensences, améliorant le codemodularité, la testabilité et la participation.

Sélectionnez DependencyInjection (DI) Pour les grandes applications, le service de service convient aux petits projets ou prototypes. 1) DI améliore la testabilité et la modularité du code par injection de constructeur. 2) Servicelocator obtient des services par l'enregistrement du centre, ce qui est pratique mais peut entraîner une augmentation du couplage du code.

PhpapplicationsCanBeoptimizedForsPeedAndFiciency: 1) AutoringOpCacheInphp.ini, 2) Utilisation de PreparedStatementswithpodOrdatabasequeries, 3) Remplacingloopswitray_filterandArray_Mapfordataprocessing, 4) Configurationnginxasareproxy, 5)

PhpemailvalidationInvolvesthestreps: 1) formatvalidationusinggularexpressionstochecktheemailformat; 2) dnsvalidationtoensethedomainhasavalidmxrecord; 3) smtpvalidation, themostthoroughMethod.

TomakePhpApplicationsFaster, suivez lesEsthets: 1) useopCodeCachingLikeOpcachetOsToreprecCompileScriptByteCode.2) MinimizedatabaseQueriesByusingSingQueryCachingAndefficientIndexing.3) Levier

TOIMPROVEPHPAPPLICATIONSPEED, SuivreSesEtsts: 1) Activer le codécachement de la codécaching avec un accumulation de dotation

L'injection de dépendance (DI) améliore considérablement la testabilité du code PHP par des dépendances explicitement transitives. 1) Les classes de découplage en DI et les implémentations spécifiques rendent les tests et la maintenance plus flexibles. 2) Parmi les trois types, le constructeur injecte des dépendances d'expression explicites pour maintenir l'état cohérent. 3) Utilisez des conteneurs DI pour gérer les dépendances complexes pour améliorer la qualité du code et l'efficacité de développement.

DatabaseQueryOptimizationInphpinvolveSeveralStrategieSoenhancePerformance.1) selectOnlyneceSaryColumnStoredatatransfer.2) useIndexingTospeeDupDatareTeval.3) ImplémentQueryCachingTostoreResul


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.
