「水坑」Z-BlogPHP 模板机制讲解「简易版」

吐槽/反馈/建议:我的咸鱼心  爱发电-@wdssmq

例行中二时间

好像确实会不少东西,然而日常不知道有什么意义;

推荐阅读

Z-BlogPHP 模板语法汇总:

https://docs.zblogcn.com/php/markup/

为什么叫「水坑」见: 「水坑」系列教程索引

「水坑」系列文章列表: /tag/GesF-Force/

PHP 可变变量(动态变量)

// 零 - index.php
echo "<h3>零</h3>";
$animal = 'turtles';
$turtles = 103;
print $$animal;
// 此处输出效果同:
// print $turtles

利用该语法可以将视图层(View)独立出来,既实现「模板机制」;

参考:
PHP: 可变变量 - php.net
MVC 框架_百度百科

正文

注:注释中- index.php部分表示该代码应该放在哪个文件里;

// 用于展示的数据 - index.php
$tags = array(
  "blog" => "https://www.wdssmq.com",
  "name" => "沉冰浮水",
  "afdian" => "https://afdian.com/@wdssmq"
);

将上边数组的每一项输出为一个段落;

// 一 - index.php
echo "<h3>一</h3>";
foreach ($tags as $key => $value) {
  echo "<p>{$key}:{$value}</p>";
}

// 二 - index.php
echo "<h3>二</h3>";
foreach ($tags as $key => $value) {
  $$key = $value;
}
echo "<p>name:{$name}</p>";
echo "<p>blog:{$blog}</p>";
echo "<p>afdian:{$afdian}</p>";

方法「一」是比较基本的循环用法,输出顺序和变量赋值时的元素顺序一致;

方法「二」则使用「可变变量」语法为数组中的每个元素创建了一个单独的变量,变量名为各数组元素的键名(字段名);

然后在输出时调整了顺序,从而不需要关心原始定义;

// 三 - index.php
echo "<h3>三</h3>";
foreach ($tags as $key => $value) {
  $$key = $value;
}
include "user-info-3.php";

继续在「index.php」中添加如上代码,然后在同一级目录内,创建「user-info-3.php」并添加如下代码;

<?php
// 3 - user-info-3.php
echo "<p>name:{$name}</p>";
echo "<p>blog:{$blog}</p>";
echo "<p>afdian:{$afdian}</p>";

继续改进:

// 四 - index.php
echo "<h3>四</h3>";
foreach ($tags as $key => $value) {
  $$key = $value;
}
include "user-info-4.php";

注意,上边全部写入「index.php」或「user-info-3.php」的代码都是在<?php内的;

小知识:对于 PHP 语法记<?php ?>,在不需要中途闭合以插入 HTML 时,用于结束的?>是可以省略的;

下边用于「user-info-4.php」文件的代码,是直接以 HTML 为主体的,仅在变量输出部分使用 PHP 语法;

<!-- 4 - user-info-4.php -->
<p>name:<?php echo $name; ?></p>
<p>blog:<?php echo $blog; ?></p>
<p>afdian:<?php echo $afdian; ?></p>

某种意义上,「// 用于展示的数据 - index.php」「// 四 - index.php」「<!-- 4 - user-info-4.php -->」三处注释所指代的代码组成及机制就是一个简单的模板语法实现;

然而在 HTML 中插入 PHP 语法仍然不是很方便,而且实际上,「<!-- 4 - user-info-4.php -->」部分的代码是由如下代码转换而来:

 <!-- 4 - user-info-4.php -->
<p>name:{$name}</p>
<p>blog:{$blog}</p>
<p>afdian:{$afdian}</p>

↑ 而这也是 Z-BlogPHP 所采用的「模板标签」语法;

参考:
主题开发 - Z-BlogPHP 文档
模板标签 - 主题开发 - Z-BlogPHP 文档

附件下载

链接: https://pan.baidu.com/s/19wH0sg5mXnY50Gue4ordlw

提取码: 4gaa

内含两个压缩包,一个是本页教程直接涉及的代码(未加密),另一个则包含凝练提取的 Z-BlogPHP Template 类及注解(加密);

密码获取方案如下:

「- -」「- -」「- -」

「折腾」Z-BlogPHP 模板机制讲解丨沉冰浮水丨爱发电:

https://afdian.com/p/5e8460cefdbc11eb80a152540025c377

↑ 自选金额大概也可以解锁吧;

「- -」「- -」「- -」

关注微信公众号:「水水不想说」;

发送口令。。不,其实什么也不用发,甚至这个公众号也不需要关注,这里并没有密码;

「- -」「- -」「- -」

使用 RSS 订阅本博客;

沉冰浮水-innoreader

密码被拆成了两部分,格式为「php-tpl-xxxx」,总长度 8 位——「1\*\*\*\*e\*\*\*\*」;

「言说」RSS 是一种态度!!_杂七杂八_沉冰浮水


爱发电

本文标题:《「水坑」Z-BlogPHP 模板机制讲解「简易版」》作者:沉冰浮水
原文链接:https://www.wdssmq.com/post/20201026266.html
特别注明外均为原创,转载请注明。

分享到微信

扫描二维码

可在微信查看或分享至朋友圈。

相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

网站分类

  • 订阅本站的 RSS 2.0 新闻聚合

搜索

本周旧文

nuc 四个口插硬盘都识别不到,有亮灯。。最后试出别插到底。。

绿联的硬盘盒。。另外一个联想的没问题。。

近期观影记录:超级马里奥,死侍与金刚狼。。

搬家也告一段落,虽然搬过来的东西还得归置,新衣柜虽说已经散俩月味儿了,但还是不想放衣服进去。

要不我每年汇总整理一次??碎雨集_沉冰浮水_第1页

所以,不带这条的话,2024 年目前只发了 13 条嘟????

VSCode 内 git 操作卡住的时候没办法主动取消一直是个痛点,一般都是推送或拉取,今天连提交都卡了。。

又一个夏天过去了,所以今年也没买防水鞋套;然后天凉了,为了应对踢被子买了睡袋,不知道 1.2 米会不会略窄。。

《五至七时的克莱奥》,2018 年 6 月加入列表,21 年 11 月底发现 B 站上线了这部,直到前几天才看完,还是分两次看的。。接下来有五项是 2019 年的,都是电影 —— 略长的待办列表。。

有用程序自动抓取自己带 tag 的嘟,然后按年备份后从线上删除;刚发现去年的数据有备份但是没删线上??和本地数据对比后发现线上的还少一条,Why??

本质上,每个人需要的是「让自己面临的问题得到解决」的能力。。

这又涉及到直接能力和间接能力,,缺乏直接能力很正常,视情况可以通过学习来掌握直接能力,或者「请」有直接能力的人来帮自己解决。。

缺乏间接能力的情况是真没救,尤其是对「这是**我自己**面临的问题」这一前提没有明确认知的人。。

爱发电支持者

最新留言

友情链接