有时判断的时候会发现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
输出结果如下

APHPDependencyInjectionContainerisatoolthatmanagesClass -Abhängigkeiten, EnhancingCodemodularität, Testbarkeit und Maschinenbarkeit.

Wählen Sie die Abhängigkeitsinjektion (DI) für große Anwendungen. Der Servicelocator ist für kleine Projekte oder Prototypen geeignet. 1) DI verbessert die Testbarkeit und Modularität des Codes durch Konstruktorinjektion. 2) Servicelocator erhält Dienstleistungen durch die Zentrumregistrierung, was bequem ist, aber zu einer Erhöhung der Codekupplung führen kann.

PhpapplicationscanbeoptimizedforspeedandefficiencyBy: 1) EnabgingOpcacheinphp.ini, 2) usePreparedStatementsWithpdoFordatabasequeries, 3) Ersatzloopswitharray_Filterandarray_mapfordataprozessing, 4) Konfigurieren von), 4), implementieren, 5)

PhpemailvalidationInvolvesthreesteps: 1) Formatvalidationusing -RegularexpressionStocheckTheemailformat; 2) DnsvalidationToensurethedomainhasavalidmxRecord;

TomakePhpapplicationsfaster, folgt der THESESTEPS: 1) UseOpCodeCaching LikeopcachetOstorePrecompiledScriptByteCode.2) MinimizedatabasequeriesByusedQueryCachingandefficiendexing.3) Hebel -FeaturesForbetTerCodeeffizienz.4) Implementierungspflichtiger Strategie

ToimProvePhpapplicationSpeed, folge theSeSteps: 1) enableOpCodeCachingWithAPCUToreducescriptexexexeTime.2) ImplementDatabaseQueryCachingusedpdotominimizedatabaseHits.3) UseHttp/2TomultiplexRequeTsReconneconneconneconneconneconneconnectionOverhead.4))

Die Abhängigkeitsinjektion (DI) verbessert die Testbarkeit von PHP -Code durch explizit transitive Abhängigkeiten signifikant. 1) DI -Entkopplungsklassen und spezifische Implementierungen machen Tests und Wartung flexibler. 2) Unter den drei Typen injiziert der Konstruktor explizite Expressionsabhängigkeiten, um den Zustand konsistent zu halten. 3) Verwenden Sie DI -Container, um komplexe Abhängigkeiten zu verwalten, um die Codequalität und die Entwicklungseffizienz zu verbessern.

DatabaseQueryoPtimizationInphpinvolvesseveralStrategieShancePerformance.1) selectonlynn -nötigesColumntededatatransfer.2) Verwenden Sie IndexingTospeedUpDatarErvieval.3) ImplementQueryCachingtoStoreresultsOffRequerien.4) Nützliche Stände


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

PHPStorm Mac-Version
Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.
