2011-05-20 55 views
1

这可能是一个非常简单的回答...PHP字符串问题

我有一段代码,我需要拉一段信息。

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('XXXX')->toHTML();?> 

对于这个工作,我需要XXXX部分拉下面的查询结果:

<?php echo $_product->getAttributeText('warranty') ?> 

因此,从上述查询的输出将是去到XXXX所需要的信息。

这个标记是完全错误的下面,但应表现出我想要实现的想法:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('<?php echo $_product->getAttributeText('warranty') ?>')->toHTML();?> 
+0

为什么你不能只是做' echo $ this-> getLayout() - > createBlock('cms/block') - > setBlockId($ _ product-> getAttributeText('warranty')) - > toHTML();'? – JamesArmes 2011-05-20 12:57:16

+0

您是否尝试删除“<?php echo”和“?>”部分?你想要打印的价值实际上是你想要替代的价值,我想。 – Anonymoose 2011-05-20 12:57:53

回答

3

你只是在代码中有一个多余的PHP开头<?php。您已经在PHP上下文中,因此您可以直接进行该调用。

<?php echo 
$this->getLayout()->createBlock('cms/block')->setBlockId($_product->getAttributeText('warranty'))->toHTML();?> 

但是,这是相当复杂和难以调试。我会将它分成几行并使用变量......请记住,您可以在上下文中做到这一点,但您并不一定只在一行中做所有事情:)

+0

完美,谢谢:) – 2011-05-20 13:18:59

1

也许就这么简单:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($_product->getAttributeText('warranty'))->toHTML();?> 

如果没有,那么我会非常想知道什么样的var(数组,int,字符串,double等)setBlockId函数需要什么$ _product-> getAttributeText返回。

1
echo $this->getLayout()->createBlock('cms/block')->setBlockId($_product->getAttributeText('warranty'))->toHTML();?> 
1
<?php 
echo $this->getLayout() 
      ->createBlock('cms/block') 
      ->setBlockId($_product->getAttributeText('warranty')) 
      ->toHTML(); 
?>