我用其他语言编程,但我的工作涉及阅读PHP,我试图理解这个视图页面的一部分(我们使用MVC)。
<?
foreach ($slides as $i => $slide) {
?>
<li class="yui3-carousel-element<?=$i > 0 ? ' hidden-node' : ''?>">
<?
为什么循环被<?
和?>
包围?我认为那些在整个PHP脚本的两端都有,但我看到它们分散在整个事情中。
这三元表达似乎只是浮动......它不是echo
'ed或print
'或者连接到任何东西......更不用说它看起来很奇怪了将数字0
与我无法解决的数字进行比较....它不是一个字符串......它是一个没有结束标记的li
元素?在PHP?我很困惑。
答案 0 :(得分:1)
<?
和?>
标记是短标记,表示PHP代码在其中。当它们关闭时,它会回到简单输出HTML。
您在广告中看到的<?=
只是<?php echo
的缩写
我个人可能会在开始时将标签打开,然后在循环中的行上进行回显。有什么相当于以下内容:
<?php
foreach ($slides as $i => $slide) {
$hiddenElement = $i > 0 ? ' hidden-node' : '';
echo '<li class="yui3-carousel-element'.$hiddenElement.'">';
答案 1 :(得分:1)
<?
?>
在PHP中称为短标记。它们表示PHP代码的开始和结束。三元也包裹着短标签。这个三元组实际上是根据$slide
的当前索引是否大于0来向类添加内容。li
是HTML,应该关闭。
答案 2 :(得分:1)
<?php /*code here blah blah*/ if (...) { ?> <div>ha</div> <?php } /*more code*/ ?>
。在PHP中,如果你不用<?php ?>
包装东西,那么它将作为HTML代码执行。<?=
的声明是回声的捷径。字面意思是<?php echo (($i > 0) ? ' hidden-node' : '' ?>
。答案 3 :(得分:1)
<?
用作php代码的开头标记,?>
用作结束标记。 PHP可以与HTML等其他语言混合使用,如您的示例所示。
实际上它正在echo
编辑,这就是=
之后的<?
。它只不过是echo
的简短命令。 ?
和:
的另一个问题是另一种简短形式。写出整件事等于if($i > 0) echo ' hidden-node'; else echo '';
。
所以代码添加了<li>
- 每个幻灯片的元素和每个幻灯片除了第一个幻灯片之外它添加了类“隐藏节点”,当代码获取时,它很可能隐藏除第一个之外的所有其他元素加载。
答案 4 :(得分:0)
<?
和?>
是php tags的简写。
之后很明显你可以看到了
<li class="yui3-carousel-element<?=$i > 0 ? ' hidden-node' : ''?>">
部分是检查$i
是否大于0并在{/ 1>}
hidden-node