DEDE模板中如何运行php脚本和变量在需要 *** 作数据库字段时

DEDE模板中如何运行php脚本和变量在需要 *** 作数据库字段时,第1张

DEDE模板中如何运行php脚本和变量在需要 *** 作数据库字段时

经常需要立即解决dede数据库查询的底层字段。如果德德没有相对涵数,那么大家就需要应用其他方法来完成。如题, *** 作php脚本和php自变量,下面有一个非常好的例子,有兴趣的盆友可以参考一下。

在应用dede模板的情况下,常常会必须立即对dede数据库查询的底层字段开展解决,假如dede中沒有相对的涵数的情况下,通常就必须大家想办法来解决了。

举例说明:我想取下数据分析表addonimages中的某一条纪录的typeid这一字段,随后在电脑浏览器中輸出typeid乘于2的結果。(注:这儿的typeid数值6)

最初我是那么写的:

复制代码编码以下:
<bodyclass="index">
{dede:looptable='dede_addonimages'if='aid=94'}
[field:typeidrunphp='yes']
echo@me*2;
[/field:typeid]
{/dede:loop}
</body>

电脑浏览器輸出結果是:126

这儿空出一个6,我觉得是缘故是[field:typeid]会先实行內部的php句子,当运作到[/field:typeid]这一行时,它会启用內部的涵数,立即回到[field:typeid]底层模板的內容,假如要想立即輸出12得话,只有在/include/extend.fuc.php这一文档中加上自定的涵数。

复制代码编码以下:
functionabc($val){
return$val*2;
}

随后模板改变为:

复制代码编码以下:
<bodyclass="index">
{dede:looptable='dede_addonimages'if='aid=94'}
[field:typeidfunction="abc(@me)"/]
{/dede:loop}
</body>

輸出結果为:12

此外要留意的是,同一模板中的几段php代码里边的自变量不通用性,换句话说一段php代码中的某一自变量,它的作用域只仅限于该短编码。

例:

复制代码编码以下:
<bodyclass="index">
{dede:looptable='dede_addonimages'if='aid=94'}
[field:typeidrunphp='yes']
echo$a=@me*2;
[/field:typeid]
{/dede:loop}
{dede:php}var_dump($a);{/dede:php}
</body>

輸出結果为:126NULL

假如想在后面的php脚本制作中应用上边php脚本制作中的自变量,我想出一个暂时性的解决方案,即用静态变量来处理这个问题。

复制代码编码以下:
<bodyclass="index">
{dede:looptable='dede_addonimages'if='aid=94'}
[field:typeidrunphp='yes']
$GLOBALS['a']=@me*2;
[/field:typeid]
{/dede:loop}
{dede:php}echo$GLOBALS['a'];{/dede:php}
</body>

輸出結果为:612(由于[field:typeid]中沒有echo,因此立即輸出6)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/773358.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-03
下一篇 2022-05-03

发表评论

登录后才能评论

评论列表(0条)

保存