【问题标题】:How do I use single quotes inside single quotes php?如何在单引号 php 中使用单引号?
【发布时间】:2019-02-26 17:39:19
【问题描述】:

谁能解释一下如何使这段代码工作?

echo '<li class="list-clients__item">
      <img src="<?php get_field('brand_logo'); ?>" height="75" width="168" alt="'.$category->cat_name.'"> 
      <span class="helper"></span> 
      </li>';

【问题讨论】:

  • 嗯,您必须详细说明什么不起作用,以及它抛出的错误消息(如果有的话)......以便于理解/回答
  • 无论如何,您都不能在字符串/回显语句中嵌套&lt;?php… 代码部分。
  • 在 PHP 中不要使用&lt;?php。连接。

标签: php html single-quotes


【解决方案1】:

您在 php 函数调用中嵌套了 php 标签。

<?php get_field('brand_logo'); ?>

这是在动态html(例如.phtml)中执行php。

使用动态 html

<li class="list-clients__item"> 
  <img src="<?php echo get_field('brand_logo'); ?>" height="75" width="168" alt="<?php echo $category->cat_name; ?>">
  <span class="helper"></span> 
</li>

或删除嵌套的php标签

echo '<li class=\"list-clients__item\"> 
        <img src=\"' . get_field('brand_logo') . '\" height=\"75\" width=\"168\" alt=\"' . $category->cat_name . '\"> 
        <span class=\"helper\"></span> 
      </li>';

【讨论】:

  • Guessing get_field 不会回显,因此在您的动态 html 版本中,它应该包含 echo 或重写为简短回显 &lt;?=get_field('brand_logo')?&gt;。(还有一些缺少的属性转义值得提及)
【解决方案2】:

试试这个:

echo '<li class="list-clients__item"> <img src="'. get_field('brand_logo', 'category_' . $category->cat_ID) .'" height="75" width="168" alt="'.$category->cat_name.'"> <span class="helper"></span> </li>';

【讨论】:

【解决方案3】:

每当我必须将一堆变量和函数嵌入到较长的(HTML)字符串中时,我发现使用以下格式更易于阅读:

$brand_logo = get_field('brand_logo');
echo <<<EOF
<li class="list-clients__item">
    <img src="{$brand_logo}" height="75" width="168" alt="{$category->cat_name}">
    <span class="helper"></span>
</li>
EOF;

称为heredoc 格式。

【讨论】:

  • 不能在字符串中调用函数(get_field)。另外值得注意的是,一些编辑器更喜欢您将 EOF 更改为 HTML 以正确突出显示语法。
  • @René 好地方,我习惯于对方法进行分类,它们确实工作。现在修好了。我不确定所有的编辑器,但是 PhpStorm 可以很好地处理heredoc。
  • 它给了我 src 未知
  • @Remon,这可能意味着 brand_logo 要么根本没有定义,要么您返回了错误的数据类型。看来您在帖子中没有给出足够多的项目来创建明确的答案。
  • @René 我使用自定义字段插件在类别部分创建了一个名为brand_logo 的新字段,我需要在主页中显示此类别徽标这是我的情况,那么您如何帮助我显示此自定义领域?
【解决方案4】:

要使您的代码正常工作,请删除 php 标记。

还可以使用 \(转义字符)来排除引号。

例如。 echo 'tom\'s rest'

echo '<li class="list-clients__item">
      <img src="'.get_field('brand_logo') .'" height="75" width="168" alt="'.$category->cat_name.'"> 
      <span class="helper"></span> 
      </li>';

【讨论】:

  • 它给了我致命错误:调用未定义的函数字段()
  • 字段是函数还是数组?
  • @Vidal field不是函数,函数调用get_field
猜你喜欢
  • 2011-03-23
  • 2012-03-26
  • 1970-01-01
  • 2013-05-13
  • 2012-08-01
  • 1970-01-01
  • 2011-06-02
  • 2017-03-11
  • 2018-06-13
相关资源
最近更新 更多