Heim  >  Artikel  >  Backend-Entwicklung  >  Wissen Sie, auf welche Fallstricke PHP7 achten muss?

Wissen Sie, auf welche Fallstricke PHP7 achten muss?

藏色散人
藏色散人nach vorne
2021-09-25 17:21:011400Durchsuche

1. Verwenden Sie keine mysql_-Klassenfunktionen

Schließlich müssen Sie die Eingabeaufforderungen, die vorschlagen, die Funktion mysql_ nicht zu verwenden, nicht mehr sehen. Da PHP 7 sie vollständig aus dem Kern entfernt, bedeutet dies einen Wechsel zu besseren mysqli_-Klassenfunktionen oder der flexibleren PDO-Schicht. mysql_ 函数的提示了。因为 PHP 7 从核心上完全移除了它们,这意味着请你移步至更好的 mysqli_ 类函数,或者更灵活的 PDO 层。

2. 不要写无用的代码

这看上去是个无脑建议,但是随着 PHP7 速度的提升掩盖了一些问题使它显得日趋重要。不要仅仅因切到 PHP7 让网站速度变得快点,你就沾沾自喜了。

想理解速度的重要性和如何做的更好,去看看我们这篇文章 初学者加速优化指南。

作为开发者,应该确保按需加载脚本,可能时再组合,编写高效的数据库查询语句,如果可能的话 使用缓存 等等。

3. 不要在文件末尾使用 PHP 闭合标签

如果你随便看看,就会发现大部分 WordPress 核心代码文件结尾都省略了 PHP 闭合标签。事实上,Zend 框架尤为明显地 禁止了闭合标签。它并非 PHP 所必须,在文件结尾处省略它,可确保结尾无额外空白。

4. 如非必须不要引用传参

我个人非常不喜欢引用传参。我当然知道在某些场合下它很有用,但是多数场合下,它会使得代码难以理解,难以遵循,难以预测结果。

人们认为引用可以使它们的代码更快,不过正如 可敬的 PHP 程序员 的这篇文章所指出的,事实并非如此。

PHP 内置的 shuffle() 或者 sort() 函数,就是糟糕的引用传参案例。 它修改了原数组而不是返回一个打乱的或者排好序的数组,这是完全违背了我们意愿的。

5. 不要在循环里使用查询

在循环中使用数据库查询时最糟糕的。他会给系统带来不必要的压力,并且很有可能,你可以在循环外使用查询而更快的得到相同的结果。当我碰到必须这样用的场景时,我通常会通过分成两个查询来构造一个数组的方式来解决。然后循环数组而无需循环查询。

由于 WordPress 的运行方式,这样做可能会有些例外。 get_post_meta() 将从数据库获取一个元数据,如果您正在循环访问特定文章的元数据,则可以在循环中使用它。这是因为当你第一次使用它的时候,WordPress 实际上取得了所有的元数据并缓存了起来。 之后的调用实际上是调用缓存数据而不是调用数据库。

解决这些问题的最好办法是阅读函数文档并且使用一些类似 查询监听器 的东西。

6. 不要在 SQL 查询中使用 *

好吧,这更像是一个 MySQL 的问题,但我们更倾向于在代码中编写 SQL 语句,所以我说这是个公平的游戏。不管什么情况下,如果你能避免使用通配符,那就不要使用,尤其是当你的数据库有很多字段的时候。

明确指定你需要的字段,并且只检索这些字段。这有助于节省内存,保护数据,并且能让事情变得更加清晰明白。

在 SQL 方面,尽可能的了解你可用的函数并测试速度。 当计算平均数,求和以及计算相似的数字的时候,使用 SQL 内置函数而不是 PHP 的函数。 如果你不确定一个查询的速度快慢,测试一下它并和其他做法进行比较,选出最好的那一种。

7. 不要信任用户的输入

信任用户输入并不明智。对于用户输入,总是需要过滤,杀毒,转义,校验以及使用回退。 用户输入存在三个问题:我们开发者不可能考虑到所有可能性,经常出错,存心的恶意输入。

一个经过深思熟虑的系统可以防止所有的这些问题。 在使用数据库时,确保使用内置的函数,如 filter_var()

2. Schreiben Sie keinen nutzlosen Code

Dies mag wie ein hirnloser Vorschlag erscheinen, aber mit zunehmender Geschwindigkeit von PHP7 werden einige Probleme verdeckt und es wird immer wichtiger. Seien Sie nicht selbstgefällig, nur weil die Umstellung auf PHP7 Ihre Website schneller macht.

Um zu verstehen, wie wichtig Geschwindigkeit ist und wie man sie besser macht, lesen Sie unseren Artikel Einsteigerleitfaden zur Beschleunigungsoptimierung.

Als Entwickler sollten Sie sicherstellen, dass Skripte bei Bedarf geladen und nach Möglichkeit kombiniert werden, effiziente Datenbankabfragen schreiben, nach Möglichkeit Caching verwenden usw.

3. Verwenden Sie keine schließenden PHP-Tags am Ende von Dateien. 🎜🎜Wenn Sie beiläufig hinschauen, werden Sie feststellen, dass die meisten WordPress-Kerncodedateien am Ende PHP-schließende Tags weglassen. Tatsächlich deaktiviert Zend Framework ausdrücklich schließende Tags. Es wird von PHP nicht benötigt. Wenn Sie es am Ende der Datei weglassen, wird sichergestellt, dass am Ende kein zusätzlicher Leerraum entsteht. 🎜🎜4. Geben Sie keine Parameter an, es sei denn, dies ist unbedingt erforderlich. 🎜🎜Ich persönlich gebe keine Parameter an. Natürlich weiß ich, dass es in manchen Situationen nützlich sein kann, aber meistens macht es den Code schwer zu verstehen, schwer zu befolgen und die Ergebnisse schwer vorherzusagen. 🎜🎜Die Leute denken, dass Referenzen ihren Code schneller machen, aber wie dieser Artikel von The Respectable PHP Programmer zeigt, ist das nicht der Fall. 🎜🎜Die in PHP integrierte Funktion shuffle() oder sort() ist ein schlechtes Beispiel für die Parameterübergabe per Referenz. Es ändert das ursprüngliche Array, anstatt ein gemischtes oder sortiertes Array zurückzugeben, was völlig gegen unseren Willen ist. 🎜🎜5. Verwenden Sie keine Abfragen in Schleifen. 🎜🎜Das Schlimmste ist, Datenbankabfragen in Schleifen zu verwenden. Dadurch wird das System unnötig belastet, und höchstwahrscheinlich können Sie die gleichen Ergebnisse schneller erhalten, wenn Sie die Abfrage außerhalb der Schleife verwenden. Wenn ich auf eine Situation stoße, in der ich es auf diese Weise verwenden muss, löse ich es normalerweise, indem ich es in zwei Abfragen aufteile, um ein Array zu erstellen. Dann durchlaufen Sie das Array, ohne die Abfrage zu wiederholen. 🎜🎜Aufgrund der Funktionsweise von WordPress kann es hiervon einige Ausnahmen geben. get_post_meta() ruft Metadaten aus der Datenbank ab, die Sie in einer Schleife verwenden können, wenn Sie die Metadaten für einen bestimmten Beitrag durchlaufen. Das liegt daran, dass WordPress bei der ersten Verwendung tatsächlich alle Metadaten übernimmt und zwischenspeichert. Nachfolgende Aufrufe rufen tatsächlich zwischengespeicherte Daten auf, anstatt die Datenbank aufzurufen. 🎜🎜Der beste Weg, diese Probleme zu lösen, besteht darin, die Funktionsdokumentation zu lesen und so etwas wie einen Abfrage-Listener zu verwenden. 🎜🎜6. Verwenden Sie kein * in SQL-Abfragen🎜🎜Nun, das ist eher eine MySQL-Frage, aber wir neigen dazu, SQL-Anweisungen im Code zu schreiben, also sage ich, dass es kein Problem ist. Wenn Sie die Verwendung von Platzhaltern vermeiden können, sollten Sie diese auf jeden Fall nicht verwenden, insbesondere wenn Ihre Datenbank viele Felder enthält. 🎜🎜Geben Sie explizit die Felder an, die Sie benötigen, und rufen Sie nur diese Felder ab. Dies hilft, Speicherplatz zu sparen, Daten zu schützen und die Übersichtlichkeit zu erhöhen. 🎜🎜In Sachen SQL lernen Sie möglichst viel über die Ihnen zur Verfügung stehenden Funktionen und testen Sie die Geschwindigkeit. Verwenden Sie beim Berechnen von Durchschnittswerten, Summen und der Berechnung ähnlicher Zahlen integrierte SQL-Funktionen anstelle von PHP-Funktionen. Wenn Sie nicht sicher sind, wie schnell eine Abfrage ist, testen Sie sie und vergleichen Sie sie mit anderen Ansätzen, um den besten auszuwählen. 🎜🎜7. Vertrauen Sie Benutzereingaben nicht. 🎜🎜 Es ist nicht ratsam, Benutzereingaben zu vertrauen. Für Benutzereingaben besteht immer die Notwendigkeit, zu filtern, zu bereinigen, zu maskieren, zu validieren und Fallbacks zu verwenden. Bei Benutzereingaben gibt es drei Probleme: Es ist für uns Entwickler unmöglich, alle Möglichkeiten zu berücksichtigen, häufige Fehler und absichtlich böswillige Eingaben. 🎜🎜Ein gut durchdachtes System kann all diese Probleme verhindern. Wenn Sie eine Datenbank verwenden, achten Sie darauf, integrierte Funktionen wie filter_var() zu verwenden, um die Gültigkeit zu überprüfen, zu maskieren und alles andere zu tun, was Sie können. 🎜🎜 WordPress verfügt über eine Reihe hilfreicher Funktionen. Schauen Sie sich diesen Artikel an, um mehr über das Validieren, Escapen und Bereinigen von Benutzerdaten zu erfahren. 🎜🎜8. Seien Sie nicht schlau 🎜🎜Ihr Ziel ist es, eleganten Code zu schreiben, der Ihre Wünsche klar zum Ausdruck bringt. Sie können auf jeder Seite 0,01 Sekunden Ladezeit einsparen, indem Sie Variablennamen kürzen, mehrstufige ternäre Logikoperationen verwenden und andere Tricks verwenden, aber das ist den Verlust nicht wert im Vergleich zu den Folgen, die Ihnen und Ihrem Team Kopfschmerzen und Schwierigkeiten bei der Wartung bereiten. 🎜🎜Variablen angemessen benennen und Codedokumentation prägnant und klar verfassen. Es ist besser, einen standardisierten objektorientierten Codierungsstil zu verwenden und ihn mehr oder weniger zu dokumentieren, als viele Inline-Codekommentare zu verwenden. 🎜

9. Erfinden Sie das Rad nicht neu

PHP gibt es schon seit einiger Zeit, und die Entwicklung von Websites gibt es sogar noch länger. Was auch immer Sie getan haben, jemand anderes hat es schon einmal getan. Scheuen Sie sich nicht, sich auf die Unterstützung anderer zu verlassen. Github, Composer und Packagist sind alle Ihre Mentoren.

Von Loggern bis hin zu Farbprozessoren, von Analysatoren bis hin zu Unit-Testing-Frameworks, von Mailchimp-APIs bis hin zu Twitter Bootstrap – alles ist nur einen Klick (oder einen Befehl) entfernt, also nutzen Sie sie!

10. Übersehen Sie nicht andere Sprachen

Wenn Sie ein PHPer sind, ist es mittlerweile Standard, mindestens HTML, CSS, Javascript und MySQL zu beherrschen. Wenn Sie mit diesen Sprachen gut umgehen können, ist es Zeit, wieder Javascript zu lernen. Javascript ist nicht jQuery. Sie sollten Javascript lernen, um jQuery effektiv nutzen zu können.

Ich empfehle außerdem, alles objektorientierte in PHP zu lernen. Es ist ein Lebensretter und wird Ihren Code um Größenordnungen verbessern. Es kann auch Türen zu Sprachen wie C# und Java öffnen, was das Verständnis der objektorientierten Programmierung (OOP) erleichtern kann, sobald Sie Erfahrung damit haben.

Erweitern Sie Ihr Wissen, indem Sie Paketverwaltung, Build-Skripte, Coffeescript, LESS, SASS, YAML, Template-Engines und andere nützliche Tools lernen. Ich empfehle auch wärmstens, sich andere Frameworks anzuschauen, insbesondere Laravel.

Wenn Sie darin gut genug sind, denken Sie über Ruby, Ruby on Rails und die App-Entwicklung für Android, iPhone und Windows Phone nach? Sie denken vielleicht, dass diese sinnlos sind, weil sie außerhalb Ihrer Komfortzone und Ihrer beruflichen Anforderungen liegen, aber sie sind genau der Punkt. Jede Sprache verfügt über einige nützliche pädagogische Kenntnisse und einige harmlose Extras. Alle Top-PHP-Entwickler kennen andere Programmiersprachen, das ist kein Zufall!

Empfohlenes Lernen: „PHP7-Tutorial

Das obige ist der detaillierte Inhalt vonWissen Sie, auf welche Fallstricke PHP7 achten muss?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen