我在php中遇到一些循环问题。它与foreach循环有关。我有这段代码:
<?php foreach($obras as $obra): ?>
<li>
<a class="thumb" href="<?php echo $base_url . 'assets/uploads/files/' . $obra["imagen"] ?>" title="<?php echo $obra['titulo'] ?>">
<img src="<?php echo $base_url . 'assets/uploads/files/' . $obra["imagen"] ?>" alt="<?php echo $obra['titulo'] ?>" />
</a>
<div class="caption">
<div class="image-desc">
<p><?= t('global_pieces_artist')?>: <?php echo $obra['nombre_artista'] . ' ' . $obra['apellidos_artista'] ?></p>
<p><?= t('global_pieces_title')?>: <?php echo $obra['titulo'] ?></p>
<p><?= t('global_pieces_year')?>: <?php echo $obra['ano'] ?></p>
<p><?= t('global_pieces_size')?> (cm.): <?php echo $obra['tamano_alto'] ?> x <?php echo $obra['tamano_ancho'] ?><? if ($obra['tamano_largo'] != null): ?> x <?php echo $obra['tamano_largo'] ?><? endif; ?></p>
<p><?= t('global_pieces_technique')?>: <?php echo $obra['tecnica'] ?> </p>
<? if (isset($obra['username'])): ?>
<p><?= t('global_company') ?>: <?php= echo $obra['username'] ?></p>
<? endif; ?>
<p><?= t('global_pieces_price')?>: <?php echo ($obra['precio'] . ' ' . $obra['divisa']) ?> (<?= t('global_pieces_price_vat')?>)</p>
<? if ($obra['observaciones'] != null): ?>
<p><?= t('global_pieces_observations')?>: <?php echo $obra['observaciones'] ?></p>
<? endif; ?>
<p id="links_last">
<a href="<?php echo $base_url . 'assets/uploads/files/' . $obra['imagen']?>"><?= t('global_download')?></a> |
<a href="javascript:window.print();"><?= t('global_print')?></a>
</p>
</div>
</div>
</li>
<?php endforeach; ?>
好吧,我要打印的所有东西都可以,但是当我到达这部分代码时:
<? if (isset($obra['username'])): ?>
<p><?= t('global_company') ?>: <?php= echo $obra['username'] ?></p>
<? endif; ?>
当我遇到问题时,因为我可以看到我想要看到的左边是<?= t('global_company') ?>
的内容,右边是什么我不能看见。如果我删除了=
,那么我就会出错,所以我做错了。
提前致谢。
答案 0 :(得分:1)
引用您的代码......
<p><?= t('global_company') ?>: <?php= echo $obra['username'] ?></p>
第二个回声不是有效的。您可以使用<?=
或<?php echo
,但不能使用<?php= echo
将上面引用的行更改为
<p><?= t('global_company') ?>: <?= $obra['username'] ?></p>
你应该得到你之后的
答案 1 :(得分:0)
没有分隔符<?php=
。
<?php ... ?>
:在这些标签中你有可执行的PHP代码。如果你想输出你必须通过使用例如echo
。
示例:<?php echo "Hello"; ?>
打印出Hello
<?= ... ?>
在这些标签中你有一个php变量或语句。函数的返回值或变量的值将自动打印出来。
示例:<?= time(); ?>
打印出time()
函数的返回值,这是unix时间戳格式的当前时间。
在您的代码中,您可以使用<?= $obra['username'] ?>
或<?php echo $obra['username'] ?>
,但不 <?= $obra['username'] ?>
,因为这不是有效的PHP。