2014-02-21 112 views
0

我在其他語言程序,但我的工作涉及閱讀PHP和我試圖瞭解這個視圖頁面的一部分(我們使用MVC)。試圖瞭解這個PHP代碼中發生了什麼?

<? 
foreach ($slides as $i => $slide) { 
    ?> 
    <li class="yui3-carousel-element<?=$i > 0 ? ' hidden-node' : ''?>"> 
    <? 
  1. 爲什麼環路通過<??>包圍?我認爲那些代碼會在整個PHP腳本的任何一端進行,但是我看到它們分散在整個事物中。

  2. 這三元表情似乎只是浮....它沒有被echo「版或print」版或級聯到什麼....那就更不用說了古怪,似乎數量0被比較的東西我不能做出....它不是一個字符串......它是一個li元素沒有結束標籤?在php中?我很困惑。

+0

1.''只是告訴服務器有一些可執行代碼。 – bblincoe

+0

http://www.php.net/manual/en/language.basic-syntax.phpmode.php – deceze

回答

0

<??>是用於php tags簡寫。

之後明顯可以看出, <li class="yui3-carousel-element<?=$i > 0 ? ' hidden-node' : ''?>"> 部分檢查是否$i大於0和顯示hidden-node當它是

1

<??>標籤是短標記說PHP代碼裏面其中。當它們關閉時,它可以回到簡單的輸出HTML。

,你上線看到的<?=簡直是<?php echo

速記我個人有可能已經離開標籤在開始打開,然後就回顯在環行。有什麼是等同於以下:

<?php 
foreach ($slides as $i => $slide) { 
    $hiddenElement = $i > 0 ? ' hidden-node' : ''; 
    echo '<li class="yui3-carousel-element'.$hiddenElement.'">'; 
1

<??>被稱爲短標籤PHP。它們表示PHP代碼的開始和結束。三元組也用短標籤包裹。該三元實際上是根據$slide的當前索引是否大於0來追加某些內容。li是HTML,它應該被關閉。

1
  1. 循環被這些包圍,因爲它退出PHP代碼並輸入HTML代碼。例如,您可以執行:<?php /*code here blah blah*/ if (...) { ?> <div>ha</div> <?php } /*more code*/ ?>。在PHP中,如果您不包裝<?php ?>的東西,那麼它將作爲HTML代碼執行。
  2. 該聲明與<?=是echo'ing的捷徑。它的字面意思是<?php echo (($i > 0) ? ' hidden-node' : '' ?>
1
  1. <?用作PHP-代碼和?>作爲結束標記的開口標籤。如您的示例中所示,PHP可以與其他語言(如HTML)混合使用。

  2. 實際上它是echo'ed,這就是<?之後的=。這只不過是echo的簡短命令。?:是另一種簡寫形式。寫出整個事情等於if($i > 0) echo ' hidden-node'; else echo '';

因此該代碼將<li> -elements爲每張幻燈片和除了它添加類的隱藏節點「,其中最有可能隱藏除了當代碼獲取第一個所有其他元素的第一個每張幻燈片加載。