Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将TWIG转换为PHP语法 {%if i.status%} {{text_enabled}} {{text_disabled}} {%else%} {{text_enabled}} {{text_disabled}} {%endif%} {%set list\u row=list\u row+1%} {%endfor%} {%endif%}_Php_Twig - Fatal编程技术网

将TWIG转换为PHP语法 {%if i.status%} {{text_enabled}} {{text_disabled}} {%else%} {{text_enabled}} {{text_disabled}} {%endif%} {%set list\u row=list\u row+1%} {%endfor%} {%endif%}

将TWIG转换为PHP语法 {%if i.status%} {{text_enabled}} {{text_disabled}} {%else%} {{text_enabled}} {{text_disabled}} {%endif%} {%set list\u row=list\u row+1%} {%endfor%} {%endif%},php,twig,Php,Twig,对于上面的代码“Select”,我应该如何将其转换为php语法 设置列表行=列表行+1也一样?%是什么意思 PHP和Twig的语法没有太大区别。Twig提供了PHP的纯模板透视图,以帮助您的模板摆脱业务逻辑,并提供诸如HTML实体和Javascript的自动转义,以及静默忽略未定义的变量、数组索引或对象方法/属性等功能,类似于PHP中的?(null coalesce)操作符 我强烈建议您花一天的时间学习Twig的有限语法。版本1、2和3之间存在细微的差异。很好地解释了细枝是如何工作的 树枝输出

对于上面的代码“Select”,我应该如何将其转换为php语法

设置列表行=列表行+1也一样?%是什么意思


PHP和Twig的语法没有太大区别。Twig提供了PHP的纯模板透视图,以帮助您的模板摆脱业务逻辑,并提供诸如HTML实体和Javascript的自动转义,以及静默忽略未定义的变量、数组索引或对象方法/属性等功能,类似于PHP中的
(null coalesce)操作符

我强烈建议您花一天的时间学习Twig的有限语法。版本1、2和3之间存在细微的差异。很好地解释了细枝是如何工作的

树枝输出

<td class="text-left">
      <select name="product[{{ list_row }}][status]" id="input-status" class="form-control">
          {% if i.status %}
            <option value="1" selected="selected">{{ text_enabled }}</option>
        <option value="0">{{ text_disabled }}</option>
             {% else %}
             <option value="1">{{ text_enabled }}</option>
               <option value="0" selected="selected">{{ text_disabled }}</option>
             {% endif %}
      </select>
</td>
    <td class="text-left">
           <button id="button_cancel" type="button" onclick="$('#product_row_{{ list_row }}').remove()" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger">
      <i class="fa fa-minus-circle"></i>
        </button>
          </td> 
             </tr>
       {% set list_row = list_row + 1 %}
        {% endfor %}
        {% endif %}
相当于

{% set var = 'value' %}
$var = ['property' => 'value'];

echo htmlspecialchars(($var['property'] ?? null), ENT_QUOTES, 'UTF-8'); //PHP 7.0+
echo htmlspecialchars((array_key_exists('property', $var) ? $var['property'] : null), ENT_QUOTES, 'UTF-8'); //PHP < 7.0

细枝变量声明

{{ var|e }}
相当于

{% set var = 'value' %}
$var = ['property' => 'value'];

echo htmlspecialchars(($var['property'] ?? null), ENT_QUOTES, 'UTF-8'); //PHP 7.0+
echo htmlspecialchars((array_key_exists('property', $var) ? $var['property'] : null), ENT_QUOTES, 'UTF-8'); //PHP < 7.0

因此,
{{}
可以被认为是打印输出的快捷方式
,或者更确切地说是

其中,
{%%}
是打开和关闭细枝语句分隔符,可以认为类似于打开和关闭PHP语句分隔符

需要注意的是,twig没有访问PHP全局或命名空间的权限。因此类似于
的内容在twig中的处理方式有所不同,例如本例
{%fori,var in vars%}

细枝变量访问

{{ var|e }}
Twig还能够使用相同语法访问关联数组键和对象属性
var.property
,并能够自动调用对象的
get
is
has
方法

如果
var
是一个数组,
{{{var.property}
相当于

{% set var = 'value' %}
$var = ['property' => 'value'];

echo htmlspecialchars(($var['property'] ?? null), ENT_QUOTES, 'UTF-8'); //PHP 7.0+
echo htmlspecialchars((array_key_exists('property', $var) ? $var['property'] : null), ENT_QUOTES, 'UTF-8'); //PHP < 7.0

缺少模板的某些部分。例如模板变量和
if
的开头,用于。。。在
块中。为了提供一个更完整的示例,我包含了一些关于变量和开头的
if
foreach
语句的断言

要将您提供的细枝模板转换为PHP,它看起来与下面的类似

class Var
{
    private $property = 'value';

    public function getProperty()
    {
       return $property;
    }
}
$var = new Var();

if (isset($var->property)) {
    echo htmlspecialchars($var->property, ENT_QUOTES, 'UTF-8');
} elseif (is_callable([$var, 'property'])) {
    echo htmlspecialchars($var->property(), ENT_QUOTES, 'UTF-8');
} elseif (is_callable([$var, 'getProperty'])) {
    echo htmlspecialchars($var->getProperty(), ENT_QUOTES, 'UTF-8');
} elseif (is_callable([$var, 'isProperty'])) {
    echo htmlspecialchars($var->isProperty(), ENT_QUOTES, 'UTF-8');
} elseif (is_callable([$var, 'hasProperty'])) {
    echo htmlspecialchars($var->hasProperty(), ENT_QUOTES, 'UTF-8');
} else {
    echo null;
}




PHP和Twig的语法没有太大区别。Twig提供了PHP的纯模板透视图,以帮助您的模板摆脱业务逻辑,并提供诸如HTML实体和Javascript的自动转义,以及静默忽略未定义的变量、数组索引或对象方法/属性等功能,类似于PHP中的
(null coalesce)操作符

我强烈建议您花一天的时间学习Twig的有限语法。版本1、2和3之间存在细微的差异。很好地解释了细枝是如何工作的

树枝输出

<td class="text-left">
      <select name="product[{{ list_row }}][status]" id="input-status" class="form-control">
          {% if i.status %}
            <option value="1" selected="selected">{{ text_enabled }}</option>
        <option value="0">{{ text_disabled }}</option>
             {% else %}
             <option value="1">{{ text_enabled }}</option>
               <option value="0" selected="selected">{{ text_disabled }}</option>
             {% endif %}
      </select>
</td>
    <td class="text-left">
           <button id="button_cancel" type="button" onclick="$('#product_row_{{ list_row }}').remove()" data-toggle="tooltip" title="{{ button_remove }}" class="btn btn-danger">
      <i class="fa fa-minus-circle"></i>
        </button>
          </td> 
             </tr>
       {% set list_row = list_row + 1 %}
        {% endfor %}
        {% endif %}
相当于

{% set var = 'value' %}
$var = ['property' => 'value'];

echo htmlspecialchars(($var['property'] ?? null), ENT_QUOTES, 'UTF-8'); //PHP 7.0+
echo htmlspecialchars((array_key_exists('property', $var) ? $var['property'] : null), ENT_QUOTES, 'UTF-8'); //PHP < 7.0

细枝变量声明

{{ var|e }}
相当于

{% set var = 'value' %}
$var = ['property' => 'value'];

echo htmlspecialchars(($var['property'] ?? null), ENT_QUOTES, 'UTF-8'); //PHP 7.0+
echo htmlspecialchars((array_key_exists('property', $var) ? $var['property'] : null), ENT_QUOTES, 'UTF-8'); //PHP < 7.0

因此,
{{}
可以被认为是打印输出的快捷方式
,或者更确切地说是

其中,
{%%}
是打开和关闭细枝语句分隔符,可以认为类似于打开和关闭PHP语句分隔符

需要注意的是,twig没有访问PHP全局或命名空间的权限。因此类似于
的内容在twig中的处理方式有所不同,例如本例
{%fori,var in vars%}

细枝变量访问

{{ var|e }}
Twig还能够使用相同语法访问关联数组键和对象属性
var.property
,并能够自动调用对象的
get
is
has
方法

如果
var
是一个数组,
{{{var.property}
相当于

{% set var = 'value' %}
$var = ['property' => 'value'];

echo htmlspecialchars(($var['property'] ?? null), ENT_QUOTES, 'UTF-8'); //PHP 7.0+
echo htmlspecialchars((array_key_exists('property', $var) ? $var['property'] : null), ENT_QUOTES, 'UTF-8'); //PHP < 7.0

缺少模板的某些部分。例如模板变量和
if
的开头,用于。。。在
块中。为了提供一个更完整的示例,我包含了一些关于变量和开头的
if
foreach
语句的断言

要将您提供的细枝模板转换为PHP,它看起来与下面的类似

class Var
{
    private $property = 'value';

    public function getProperty()
    {
       return $property;
    }
}
$var = new Var();

if (isset($var->property)) {
    echo htmlspecialchars($var->property, ENT_QUOTES, 'UTF-8');
} elseif (is_callable([$var, 'property'])) {
    echo htmlspecialchars($var->property(), ENT_QUOTES, 'UTF-8');
} elseif (is_callable([$var, 'getProperty'])) {
    echo htmlspecialchars($var->getProperty(), ENT_QUOTES, 'UTF-8');
} elseif (is_callable([$var, 'isProperty'])) {
    echo htmlspecialchars($var->isProperty(), ENT_QUOTES, 'UTF-8');
} elseif (is_callable([$var, 'hasProperty'])) {
    echo htmlspecialchars($var->hasProperty(), ENT_QUOTES, 'UTF-8');
} else {
    echo null;
}




奇怪的是,为什么你想把Twig转换成PHP,而不是使用Twig模板呢?Twig有很多有用的特性来制作模板,比如
{%extends%}
,并有助于使模板不受业务逻辑的影响。它绝对值得学习。是的,我想学习,因为它对我来说是新的,但我被传递到这个项目,由于语法的原因无法继续进行增强,这会减慢项目的速度。你可以在这里转换你的twig代码:好奇的是,你为什么要将twig转换为PHP,而不是使用twig模板?Twig有很多有用的特性来制作模板,比如
{%extends%}
,并有助于使模板不受业务逻辑的影响。这绝对值得学习。是的,我想学习,因为这对我来说是新的,但我被转到了这个项目,由于语法原因无法继续进行增强,这会减慢项目的速度。你可以在这里转换你的细枝代码: