2011-05-20 65 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(); 
?>