我在视图中找到了这样的代码:

<?php if ($condition->isTrue()): ?>
    <?= Html::a('label', ['/location'], ['title' => 'some title']) ?>
<?php endi,php,templates,yii2"/>
	














首页 > 解决方案 > 我可以使用哪个 PHP 函数来代替

我在视图中找到了这样的代码:

<?php if ($condition->isTrue()): ?>
    <?= Html::a('label', ['/location'], ['title' => 'some title']) ?>
<?php endi

问题描述

我在视图中找到了这样的代码:

<?php if ($condition->isTrue()): ?>
    <?= Html::a('label', ['/location'], ['title' => 'some title']) ?>
<?php endif; ?>

我确定可以将其设为单个 PHP 块(就像只有一个开始/结束 PHP 标记一样。问题是:什么是<?=标记的适当替换?它可以是任何产生输出的东西吗?一些最佳实践?


通过点符号函数调用传递动态变量

在我的 Node/MongoDB 后端中,我使用如下所示的点表示法进行调用:

await this.sybase.Clients.add(args.doc, args.metaData, this.app);

现在,为了使它更有用,我希望能够输入动态变量。具体来说,在您看到“客户”的地方,我想使用一个名为“模型”的变量,我可以根据需要对其进行分配。

我还希望能够在您看到“添加”的地方使用动态变量——比如“动作”。

如果这是一个字符串,我会这样做:

`this.sybase.${model}.${action}(args.doc, args.metaData, this.app)`

但显然这在这里行不通。那么在这种情况下如何传递动态变量呢?

标签: phptemplatesyii2

解决方案


像这样

<?php 
if ($condition->isTrue()) {
    echo Html::a('label', ['/location'], ['title' => 'some title']);
}
?>

您正在寻找的是 PHP 标签。<?php&?>标签用于可执行的 PHP 代码。标签<?=类似于.<?php echo ...

一些文档:https ://www.php.net/manual/en/language.basic-syntax.phptags.php


推荐阅读