手把手教你做关键词匹配项目(搜索引擎)---- 第十三天,教你做第十三天_PHP教程
手把手教你做关键词匹配项目(搜索引擎)---- 第十三天,教你做第十三天
第十三天
自从小帅帅被于老大批了之后,心里非常不爽,因为有这样的理由:我已经做到了你想要的,为什么还得不到肯定。
什么样的程序员才是优秀的?小帅帅带着这样的疑问去了解设计模式。
尽管他把设计模式看了很多遍,甚至连设计模式的名字背得滚瓜烂熟,单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式...等。
但是小帅帅还是不知道如何去用,没办法,他只好再次去请教于老大,于老大给了一份代码让他去看,看看里面用了什么设计模式。
什么样的程序员才是优秀的?有人说,优秀的程序员是写出可以阅读的代码,而普通的程序员是写出可以运行的代码。
于老大的代码如下:
<?<span>php </span><span>class</span><span> SelectorItem { </span><span>private</span> <span>$item</span><span>; </span><span>public</span> <span>function</span> __construct(<span>$item</span><span>){ </span><span>$this</span>->item = <span>$item</span><span>; } </span><span>public</span> <span>function</span> __get(<span>$name</span><span>){ </span><span>if</span>(<span>isset</span>(<span>$this</span>->item-><span>$name</span><span>)){ </span><span>return</span> <span>$this</span>->item-><span>$name</span><span>; } </span><span>return</span> <span>null</span><span>; } </span><span>public</span> <span>static</span> <span>function</span> createFromApi(<span>$num_iid</span><span>){ </span><span>$client</span> = <span>new</span><span> TopClient(); </span><span>$client</span>->appkey = 'xx'<span>; </span><span>$client</span>->secretKey = 'xx'<span>; </span><span>$req</span> = <span>new</span><span> ItemGetRequest(); </span><span>$req</span>->setFields('props_name,property_alias,detail_url,cid,title'<span>); </span><span>$req</span>->setNumIid(<span>$num_iid</span><span>); </span><span>$resp</span> = <span>$client</span>->execute(<span>$req</span><span>); </span><span>if</span>(<span>isset</span>(<span>$resp</span>-><span>code)){ </span><span>#</span><span> error handle</span> <span>throw</span> <span>new</span> <span>Exception</span>(<span>$resp</span>->msg, <span>$resp</span>-><span>code); } </span><span>return</span> <span>new</span> self(<span>$resp</span>-><span>item); } } </span><span>class</span><span> CharList { </span><span>private</span> <span>$core</span> = <span>array</span><span>(); </span><span>private</span> <span>$blacklist</span> = <span>array</span><span>(); </span><span>public</span> <span>function</span> addCore(<span>$char</span><span>){ </span><span>if</span>(!<span>in_array</span>(<span>$char</span>,<span>$this</span>-><span>core)) </span><span>$this</span>->core[] = <span>$char</span><span>; } </span><span>public</span> <span>function</span><span> getCore(){ </span><span>return</span> <span>$this</span>-><span>core; } </span><span>public</span> <span>function</span> addBlacklist(<span>$char</span><span>){ </span><span>if</span>(!<span>in_array</span>(<span>$char</span>,<span>$this</span>-><span>blacklist)) </span><span>$this</span>->blacklist[] = <span>$char</span><span>; } </span><span>public</span> <span>function</span><span> getBlacklist(){ </span><span>return</span> <span>$this</span>-><span>blacklist; } } </span><span>abstract</span> <span>class</span><span> CharListHandle { </span><span>protected</span> <span>$charlist</span><span>; </span><span>public</span> <span>function</span> __construct(<span>$charlist</span><span>){ </span><span>$this</span>->charlist = <span>$charlist</span><span>; } </span><span>abstract</span> <span>function</span> <span>exec</span><span>(); } </span><span>class</span> MenCharListHandle <span>extends</span><span> CharListHandle { </span><span>public</span> <span>function</span> <span>exec</span><span>(){ </span><span>$this</span>->charlist->addCore("男装"<span>); </span><span>$this</span>->charlist->addBlacklist("女"<span>); } } </span><span>class</span> WomenCharListHandle <span>extends</span><span> CharListHandle{ </span><span>public</span> <span>function</span> <span>exec</span><span>(){ </span><span>$this</span>->charlist->addCore("女装"<span>); </span><span>$this</span>->charlist->addBlacklist("男"<span>); } } </span><span>#</span><span> 其他CharList Handle小帅帅完成</span> <span>class</span><span> Selector { </span><span>private</span> <span>static</span> <span>$charListHandle</span> = <span>array</span><span>( </span>"男装"=>"MenCharListHandle", "女装"=>"WomenCharListHandle", "情侣装"=>"LoversCharListHandle", "童装"=>"ChildrenCharListHandle"<span> ); </span><span>public</span> <span>static</span> <span>function</span> select(<span>$num_iid</span><span>){ </span><span>$selectorItem</span> = SelectorItem::createFromApi(<span>$num_iid</span><span>); Logger</span>::trace(<span>$selectorItem</span>-><span>props_name); </span><span>$matchTitle</span> = <span>$selectorItem</span>->title.<span>$selectorItem</span>-><span>props_name; </span><span>$charlist</span> = <span>new</span><span> CharList(); </span><span>foreach</span>(self::<span>$charListHandle</span> <span>as</span> <span>$matchKey</span>=><span>$className</span><span>){ </span><span>if</span>(<span>preg_match</span>("/<span>$matchKey</span>/",<span>$matchTitle</span><span>)){ </span><span>$handle</span> = self::createCharListHandle(<span>$className</span>,<span>$charlist</span><span>); </span><span>$handle</span>-><span>exec</span><span>(); } } </span><span>//</span><span>do search things </span> <span> } </span><span>public</span> <span>static</span> <span>function</span> createCharListHandle(<span>$className</span>,<span>$charlist</span><span>){ </span><span>if</span>(<span>class_exists</span>(<span>$className</span><span>)){ </span><span>return</span> <span>new</span> <span>$className</span>(<span>$charlist</span><span>); } </span><span>throw</span> <span>new</span> <span>Exception</span>("class not exists",0<span>); } }</span>
小帅帅看了代码后再也按耐不住了,这就是传说中的于老大,还不是抄的我的代码。。。
于老大要是听到小帅帅的想法,会有什么举动呢?
小帅帅没办法继续去研究神功秘籍。

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Die Anpassung der Blendengröße hat einen entscheidenden Einfluss auf den Fotoeffekt. Das Xiaomi Mi 14 Ultra bietet eine beispiellose Flexibilität bei der Einstellung der Kamerablende. Damit jeder die Blende reibungslos einstellen und die Blendengröße frei anpassen kann, bietet Ihnen der Herausgeber hier eine ausführliche Anleitung zum Einstellen der Blende beim Xiaomi Mi 14Ultra. Wie stelle ich die Blende beim Xiaomi Mi 14Ultra ein? Starten Sie die Kamera, wechseln Sie in den „Professionellen Modus“ und wählen Sie die Hauptkamera aus – W-Objektiv. Klicken Sie auf die Blende, öffnen Sie das Blendenrad, A ist automatisch, wählen Sie je nach Bedarf f/1,9 oder f/4,0.

Fermats letzter Satz steht kurz davor, von der KI erobert zu werden? Und das Bedeutsamste an der ganzen Sache ist, dass der letzte Satz von Fermat, den die KI gerade lösen wird, genau dazu dient, zu beweisen, dass KI nutzlos ist. Früher gehörte die Mathematik zum Bereich der reinen menschlichen Intelligenz; heute wird dieses Gebiet von fortschrittlichen Algorithmen entschlüsselt und mit Füßen getreten. Bild Der letzte Satz von Fermat ist ein „berüchtigtes“ Rätsel, das Mathematikern seit Jahrhunderten Rätsel aufgibt. Es wurde 1993 bewiesen, und jetzt haben Mathematiker einen großen Plan: den Beweis mithilfe von Computern nachzubilden. Sie hoffen, dass etwaige logische Fehler in dieser Version des Beweises durch einen Computer überprüft werden können. Projektadresse: https://github.com/riccardobrasca/flt

Ce Modifier (CheatEngine) ist ein Spielmodifizierungstool zum Ändern und Bearbeiten des Spielspeichers. Als Nächstes erklärt Ihnen der Editor, wie Sie Chinesisch in Ce Modifier festlegen. Bei der neuen Software, die wir herunterladen, kann es verwirrend sein, dass die Benutzeroberfläche nicht auf Chinesisch ist. Auch wenn diese Software nicht in China entwickelt wurde, gibt es Möglichkeiten, sie in die chinesische Version zu konvertieren. Dieses Problem kann durch einfaches Anwenden des chinesischen Patches gelöst werden. Öffnen Sie nach dem Herunterladen und Installieren der CheatEngine-Software (ce modifier) den Installationsort und suchen Sie den Ordner mit dem Namen „Sprachen“, wie in der folgenden Abbildung dargestellt

Aktuelle Nachrichten: LackMagic hat das öffentliche Beta-Update 18.5PublicBeta2 der Videobearbeitungssoftware DaVinci ResolveStudio veröffentlicht, das AV1-Kodierungsunterstützung für AMD Radeon-Grafikkarten bietet. Nach dem Update auf die neueste Version können Benutzer von AMD-Grafikkarten die Hardwarebeschleunigung für die AV1-Kodierung in DaVinci Resolve Studio nutzen. Obwohl der Beamte keine Angaben zu den unterstützten Architekturen oder Modellen macht, wird erwartet, dass alle Benutzer von AMD-Grafikkarten diese Funktion ausprobieren können. Im Jahr 2018 veröffentlichte AOMedia einen neuen Videokodierungsstandard AV1 (AOMediaVideoCodec1.0). AV1 wird von mehreren produziert

Honor 90GT ist ein kostengünstiges Smartphone mit hervorragender Leistung und hervorragendem Benutzererlebnis. Allerdings kann es manchmal zu Problemen kommen, z. B. wie aktualisiere ich Honor MagicOS8.0 auf dem Honor 90GT? Dieser Schritt kann bei verschiedenen Mobiltelefonen und Modellen unterschiedlich sein. Lassen Sie uns also besprechen, wie Sie das System richtig aktualisieren. Wie aktualisiere ich Honor MagicOS 8.0 auf Honor 90GT? Laut Nachrichten vom 28. Februar hat Honor heute das öffentliche Beta-Update von MagicOS8.0 für seine drei Mobiltelefone 90GT/100/100Pro veröffentlicht. Die Paketversionsnummer ist 8.0.0.106 (C00E106R3P1). . Stellen Sie sicher, dass der Akku des 90GT vollständig aufgeladen ist.

Apple hat am Dienstag das iOS 17.4-Update veröffentlicht, das eine Reihe neuer Funktionen und Korrekturen für iPhones bringt. Das Update enthält neue Emojis und EU-Nutzer können diese auch aus anderen App-Stores herunterladen. Darüber hinaus stärkt das Update auch die Kontrolle der iPhone-Sicherheit und führt weitere Einstellungsoptionen für den „Schutz gestohlener Geräte“ ein, um Benutzern mehr Auswahl und Schutz zu bieten. „iOS17.3 führt zum ersten Mal die Funktion „Schutz vor gestohlenen Geräten“ ein, die den vertraulichen Informationen der Benutzer zusätzliche Sicherheit verleiht. Wenn der Benutzer nicht zu Hause oder an anderen vertrauten Orten ist, erfordert diese Funktion, dass der Benutzer zum ersten Mal biometrische Informationen eingibt Zeit und nach einer Stunde müssen Sie Informationen erneut eingeben, um auf bestimmte Daten zuzugreifen und diese zu ändern, z. B. um Ihr Apple-ID-Passwort zu ändern oder den Schutz vor gestohlenen Geräten zu deaktivieren.

Beliebte Metaverse-Spieleprojekte, die im letzten Krypto-Zyklus gegründet wurden, beschleunigen ihre Expansion. Am 4. März kündigte PlanetMojo, die Web3-Spiele-Metaverse-Plattform, eine Reihe wichtiger Entwicklungen in seiner Spieleökologie an, darunter die Ankündigung des kommenden Parkour-Spiels GoGoMojo und den Start der neuen Staffel „Way of War“ im Flaggschiff-Autoschach Spiel MojoMelee und die Feier des neuen Die erste ETH-Serie „WarBannerNFT“ startete diese Saison in Zusammenarbeit mit MagicEden. Darüber hinaus gab PlanetMojo bekannt, dass sie planen, noch in diesem Jahr Android- und iOS-Mobilversionen von MojoMelee auf den Markt zu bringen. Dieses Projekt wird Ende 2021 gestartet. Nach fast zwei Jahren harter Arbeit in der Baisse wird es bald abgeschlossen sein.

Antwort: Ja, Golang bietet Funktionen, die das Hochladen von Dateien vereinfachen. Details: Der MultipartFile-Typ bietet Zugriff auf Dateimetadaten und -inhalte. Die FormFile-Funktion ruft eine bestimmte Datei aus der Formularanforderung ab. Die Funktionen ParseForm und ParseMultipartForm werden zum Parsen von Formulardaten und mehrteiligen Formulardaten verwendet. Die Verwendung dieser Funktionen vereinfacht den Dateiverarbeitungsprozess und ermöglicht Entwicklern, sich auf die Geschäftslogik zu konzentrieren.
