搜尋
首頁後端開發php教程 ThinkPHP的PHP变量传送到模板原理浅析

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

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

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

$this->display();


这个对于使用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();

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

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

$this->assign()

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

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

protected $_var = array();

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

$this->_var[$name] = $value;

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

include $tplfile;

最后:

		$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();


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
比较:Apple Studio Display vs Samsung Smart Monitor M8比较:Apple Studio Display vs Samsung Smart Monitor M8May 11, 2023 pm 10:46 PM

三星智能显示器M8与AppleStudio显示器:设计和尺寸自推出以来,AppleStudioDisplay就被比作iMac,由相对简单的L形支架上的相对薄的面板组成。这是一种众所周知且深受喜爱的美学,三星似乎借用了它的展示。三星SmartMonitorM8采用了与外观非常相似的支架上的薄屏幕的相同想法。一些次要元素有所不同,例如左下角的小部分有点突出,三星的下巴很薄,但它们在基本设计方面似乎很接近。三星似乎从24英寸iMac中获得了很多灵感。苹果的显示器比三星的要小

Apple Studio Display 的电源线是可拆卸的,但需要特殊工具Apple Studio Display 的电源线是可拆卸的,但需要特殊工具May 17, 2023 pm 03:05 PM

AppleStudioDisplay现已在商店正式发售,全球已有多家客户购买了该产品。与ProDisplayXDR不同,StudioDisplay有一个独特的电源连接器,似乎是不可拆卸的。事实证明,电缆是可拆卸的,但您需要使用特殊工具才能将其卸下。苹果在其网站上表示,StudioDisplay的电源线是不可拆卸的——而且很多用户都这么认为。那是因为用你的双手移除电缆似乎是不可能的,但幸运的是,电缆可以从显示器上分离。,Apple有一个特殊的工具,用于从其新的StudioDispl

对比:Apple Studio Display vs LG UltraFine 5K Display 哪个好?对比:Apple Studio Display vs LG UltraFine 5K Display 哪个好?Apr 16, 2023 pm 08:25 PM

StudioDisplay和LGUltraFine5KDisplay在市场上占有相似的位置,但苹果的显示器要贵300美元。以下是您需要了解的有关这些显示器如何比较的所有信息。六年在科技领域是一段很长的时间,而这也是苹果出售一款价格不超过5,000美元的品牌显示器以来的时间。在此期间,Apple与LG合作销售专门迎合Mac用户的LGUltraFine系列。2019年,Apple停止销售这些LG显示器,转而支持ProDisplayXDR,这在价格适中的Mac友好显

Apple Studio Display 适用于 Windows,但有一些限制Apple Studio Display 适用于 Windows,但有一些限制Apr 14, 2023 pm 03:49 PM

Apple本周发布了StudioDisplay,它采用27英寸5K面板,结合了摄像头、麦克风和扬声器,当用户将显示器连接到Mac时,它们可以协同工作。窗户呢?如果出于某种原因您需要在WindowsPC上使用Apple的1599美元显示器,您可以,但有一些限制。当通过Thunderbolt连接(并非每台PC都支持)插入WindowsPC时,StudioDisplay被识别为常规显示器。也就是说,如果您购买了其中一个以将其与Windows一起使用,则需要记

推出 Studio Display 后,Apple 停止销售 5K LG UltraFine 显示器推出 Studio Display 后,Apple 停止销售 5K LG UltraFine 显示器Apr 16, 2023 am 08:43 AM

在AppleStudioDisplay发布之后,AppleStore已正式停止销售5KLGUltraFine。目前尚不清楚LG是否会完全停止生产该型号,该产品在LG自己的网站上也缺货,尽管目前它目前仍在亚马逊上销售。eBay售后市场似乎相当健康,可能是因为人们正在大量卸载显示器,现在可以使用第一方解决方案。AppleStudioDisplay使用的面板与LG多年来在UltraFine5K中使用的面板几乎相同。它也与苹果在27英寸iMac中销售的产品非常相

Apple Studio Display 包含 64GB 存储空间,但仅使用了 2GBApple Studio Display 包含 64GB 存储空间,但仅使用了 2GBApr 13, 2023 pm 09:58 PM

一位开发人员发现,Apple 的 Studio Display 包含 64GB 的板载存储空间,但显示器实际使用的只有 2GB。正如开发人员“Khaos Tian”在 Twitter 上强调的那样,Studio Display 仅使用其 64GB 内部 NAND 存储中的 2GB。固件更新可能需要一些可用空间,但目前 62GB 的未使用空间似乎在其他方面毫无用处。Apple 尚未在其技术规格中确认 Studio Display 的内部存储数量。鉴于 Studio Display 包含 A13 仿

Apple 的 Studio Display 与 LG 的 UltraFine 5K 显示器对比?哪个好Apple 的 Studio Display 与 LG 的 UltraFine 5K 显示器对比?哪个好May 11, 2023 pm 05:43 PM

随着本月早些时候Apple新推出的27英寸5KStudioDisplay的推出,它立即与LG已经上市多年的类似UltraFine5K显示器进行了比较。LG显示器比StudioDisplay便宜300美元,虽然可用性参差不齐,但LG表示它将继续提供,因此我们决定比较这两种显示器以确定哪个更有价值。两款显示器均采用27英寸和相同的5K分辨率,因此两款显示器的整体观看体验相似,尽管StudioDisplay的亮度可以达到600尼特,而UltraFine

Studio Display 在几台较旧的 Mac 上启用“Hey Siri”Studio Display 在几台较旧的 Mac 上启用“Hey Siri”Apr 14, 2023 pm 02:22 PM

Apple 的新 Studio Display 可以在以前不支持该功能的几台旧 Mac 上启用“Hey Siri”语音命令。例如,虽然“嘿 Siri”通常需要 2018 年或之后发布的 MacBook Pro,但该功能可以在 2016 年和 2017 年的 13 英寸和 15 英寸 MacBook Pro 机型上使用,同时连接到 Studio Display。同样,虽然“Hey Siri”通常需要 2020 年或之后发布的 iMac,但该功能可以在 2017 年至 2019 年的 21.5 英寸

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中