Heim Backend-Entwicklung PHP-Tutorial ThinkPHP的PHP变量传送到模板原理浅析

ThinkPHP的PHP变量传送到模板原理浅析

Jun 13, 2016 am 11:15 AM
display list this

ThinkPHP的PHP变量传递到模板原理浅析

程序员就应该是站在前人的肩膀上前进,所以,分析优秀的开源产品以及框架我觉得是程序员必做事情。

最近在尝试自己独立编写一个程序,在后台用到了php模板,简单来说,就是模板中用原生态的PHP代码做循环、显示内容。

$this->display();
Nach dem Login kopieren


这个对于使用thinkphp的朋友应该是很熟悉了,就是一个引用模板的代码,我也是这么做的。开始的时候,我是这么写的

		$list = $this->query('select * from %pre%yiciconf where left(`key`,4)=\'sys_\'');		$setting = array();		if (!empty($list)) {			foreach ($list as $value){				$setting[$value['key']] = $value['value'];			}		}				$this->display();
Nach dem Login kopieren

模板中居然报错,说找不到setting,悲剧啊,因为模板的引用在display中,所以这里声明的变量根本没法进去,都是类方法,这是闹哪样,蛋碎。

开始也想过global来进行超全局传递,但是想想,貌似效率不高,而且每个引用的都这么写,想想越写越多,都是难以维护以及阅读的事情。必须让自己以及阅读者知道这个变量引用到模板中了,于是我眼睛紧盯

$this->assign()
Nach dem Login kopieren

总体来说,大致流程如下:

1、声明一个初始值为array()的类变量

protected $_var = array();
Nach dem Login kopieren

2、使用方法assign将局部变量传递到类变量中

$this->_var[$name] = $value;
Nach dem Login kopieren

3、在方法display中,使用extract函数将$this->_var分解成当前方法的局部变量,然后在display中应用模板

include $tplfile;
Nach dem Login kopieren

最后:

		$list = $this->query('select * from %pre%yiciconf where left(`key`,4)=\'sys_\'');		$setting = array();		if (!empty($list)) {			foreach ($list as $value){				$setting[$value['key']] = $value['value'];			}		}		$this->assign('setting', $setting);		$this->display();
Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Preiserwartungen für die Fujifilm X-M5 steigen, da das durchgesickerte Selfie-Display die ehemals erschwingliche Kamerareihe komplexer macht Die Preiserwartungen für die Fujifilm X-M5 steigen, da das durchgesickerte Selfie-Display die ehemals erschwingliche Kamerareihe komplexer macht Sep 07, 2024 am 09:34 AM

Fujifilm-Fans waren kürzlich sehr gespannt auf die Aussicht auf die X-T50, da sie eine Neuauflage der preisgünstigen Fujifilm X-T30 II darstellte, die in der APS-C-Kategorie unter 1.000 US-Dollar recht beliebt geworden war. Leider ist die Fujifilm X-T50 auf den Markt gekommen

Samsung: Neues, großes Display auf Basis der E-Ink-Technologie zeigt Farben an und kommuniziert drahtlos Samsung: Neues, großes Display auf Basis der E-Ink-Technologie zeigt Farben an und kommuniziert drahtlos Jun 19, 2024 pm 03:37 PM

Wir berichten häufig über Geräte, die auf Displays mit elektronischer Tinte basieren, wie zum Beispiel E-Reader. Die Technologie bietet eine Reihe von Vorteilen: Sie kann in hellen Umgebungen ohne Hintergrundbeleuchtung gelesen werden und benötigt beim Schalten ohne Licht nur Strom

Vergleich: Apple Studio Display vs. Samsung Smart Monitor M8 Vergleich: Apple Studio Display vs. Samsung Smart Monitor M8 May 11, 2023 pm 10:46 PM

Samsung Smart Display M8 vs. Apple Studio Display: Design und Größe Seit seiner Einführung wird das Apple Studio Display mit dem iMac verglichen, da es aus einem relativ dünnen Panel auf einem relativ einfachen L-förmigen Ständer besteht. Es ist eine bekannte und beliebte Ästhetik, und Samsung scheint sie für seine Präsentation übernommen zu haben. Der Samsung SmartMonitor M8 nutzt die gleiche Idee eines dünnen Bildschirms auf einem Standfuß, der sehr ähnlich aussieht. Einige kleinere Elemente unterscheiden sich, wie zum Beispiel der kleine Bereich in der unteren linken Ecke, der etwas hervorsteht, und das sehr dünne Kinn des Samsung, aber vom grundlegenden Design her scheinen sie ähnlich zu sein. Samsung scheint sich stark vom 24-Zoll-iMac inspirieren zu lassen. Das Display von Apple ist kleiner als das von Samsung

Das Netzkabel des Apple Studio Displays ist abnehmbar, erfordert jedoch Spezialwerkzeuge Das Netzkabel des Apple Studio Displays ist abnehmbar, erfordert jedoch Spezialwerkzeuge May 17, 2023 pm 03:05 PM

Apple Studio Display ist jetzt offiziell im Handel erhältlich und viele Kunden auf der ganzen Welt haben das Produkt gekauft. Im Gegensatz zum ProDisplayXDR verfügt das StudioDisplay über einen einzigartigen Stromanschluss, der scheinbar nicht abnehmbar ist. Es stellt sich heraus, dass das Kabel abnehmbar ist, Sie benötigen jedoch ein Spezialwerkzeug, um es zu entfernen. Apple gibt auf seiner Website an, dass das Netzkabel des Studio Displays nicht abnehmbar sei – und das denken viele Nutzer auch. Das liegt daran, dass es scheinbar unmöglich ist, das Kabel mit den Händen zu entfernen, aber glücklicherweise lässt sich das Kabel vom Monitor lösen. Apple verfügt über ein spezielles Tool zum Extrahieren von Informationen aus seinem neuen StudioDispl

So implementieren Sie die Redis-Listenoperation in PHP So implementieren Sie die Redis-Listenoperation in PHP May 26, 2023 am 11:51 AM

Listenoperation //Einen Wert vom Kopf der Liste einfügen. $ret=$redis->lPush('city','guangzhou');//Fügen Sie einen Wert vom Ende der Liste ein. $ret=$redis->rPush('city','guangzhou');//Erhalten Sie die Elemente im angegebenen Bereich der Liste. 0 steht für das erste Element der Liste, -1 für das letzte Element und -2 für das vorletzte Element. $ret=$redis->l

anzeigen, was es bedeutet anzeigen, was es bedeutet Oct 26, 2023 am 11:50 AM

Unter Anzeige versteht man in der Regel den Vorgang oder die Funktion, dem Benutzer Daten, Informationen oder Ergebnisse auf irgendeine Weise anzuzeigen oder auf einem Bildschirm oder einem anderen Gerät auszugeben. Spezifische Bedeutung: 1. In der Befehlszeilenschnittstelle (CLI) kann sich „Anzeige“ auf die Ausgabe von Daten in Text, Tabellen oder anderen Formaten im Terminalfenster beziehen, damit Benutzer sie anzeigen oder analysieren können. 2. In der grafischen Benutzeroberfläche (GUI) „Anzeige“. kann sich auf die Anzeige von Bildern, Text, Diagrammen und anderen Inhalten im Anwendungsfenster oder auf der Benutzeroberfläche zur Benutzerinteraktion oder zum Durchsuchen usw. beziehen.

Boot Camp wurde aktualisiert, um Apple Studio Display zu unterstützen Boot Camp wurde aktualisiert, um Apple Studio Display zu unterstützen May 20, 2023 pm 11:34 PM

IntelMac-Benutzer, die Windows auf einem Mac ausführen, können jetzt ihre Treiber in BootCamp aktualisieren, um Apples StudioDisplay zu unterstützen. Apple aktualisiert BootCamp regelmäßig, um Unterstützung für neue Hardware sowie typische Kompatibilitäts- und Leistungsverbesserungen einzuführen. Im Software-Update vom März hat Apple BootCamp für die Zusammenarbeit mit dem neuen StudioDisplay aktiviert. Das Update, das BootCamp auf Version 6.1.17 bringt, führt zwei wichtige Supportelemente ein. Erstens wird die Kompatibilität mit StudioDisplay hinzugefügt und sichergestellt

Welche Werte hat die Anzeige? Welche Werte hat die Anzeige? Nov 20, 2023 pm 05:28 PM

Zu den Anzeigewerten gehören Block, Inline, None, Inline-Block, Flex, Grid, Table, Inline-Table und List-Item. Detaillierte Einführung: 1. Block, der Elemente in Elemente auf Blockebene umwandelt, bildet einen Block auf der Seite und belegt nur eine Zeile. 2. Inline, wodurch Elemente in Inline-Elemente umgewandelt werden. Inline-Elemente belegen keine eigene Zeile und können neben anderen Elementen stehen. 3. Keine, dieser Wert gibt an, dass das Element nicht auf der Seite usw. sein wird.

See all articles