PHP解析错误:语法错误,意外'新' (T_NEW)

时间:2017-07-16 11:28:09

标签: php

我试图翻译&#34; new&#34; Magento 2中的标签,但现在它显示Http错误500.例如,我在下面的代码中将<span>new</span>更改为<span data-bind="i18n: 'new'"></span>。我做错了什么?

function newLabel($_product) {
  $output='';
  $now = date("Y-m-d");
  $newsFrom = substr($_product->getNewsFromDate(), 0, 10);
  $newsTo = substr($_product->getNewsToDate(), 0, 10);
  $new = false;

  if (!empty($newsFrom) && !empty($newsTo)) {
    if ($now >= $newsFrom && $now <= $newsTo) $new = true;
  } elseif (!empty($newsFrom) && empty($newsTo)) {
    if ($now >= $newsFrom) $new = true;
  } elseif (empty($newsFrom) && !empty($newsTo)) {
    if ($now <= $newsTo) $new = true;
  }
  // I'm trying to change this line:
  if ($new) $output='<div class="product_holder__label product_holder__label--right product_holder__label--new"> <span>new</span> </div>';
  return $output; 
}

error_log中,如果我尝试翻译,我可以看到这一点:

PHP Parse error: syntax error, unexpected 'new' (T_NEW) in /home/.../.../app/code/vendor/module/Helper/Data.php

1 个答案:

答案 0 :(得分:0)

你没有注意正确的引用。据我所知,你正在取代这一行:

if ($new)$output='... <span>new</span> ...';

直接与此:

if ($new)$output='... <span data-bind="i18n: 'new'"></span> ...';

这是一个问题,因为new周围的单引号被误解为字符串'... <span data-bind="i18n: '的结尾,另一个作为字符串'"></span> ...'的开头。

您需要使用反斜杠转义单引号:

if ($new)$output='... <span data-bind="i18n: \'new\'"></span> ...';