根据if语句条件分配字符串数组内容

时间:2012-06-24 16:55:40

标签: php

我需要将不同的表标记代码存储在php数组中,作为字符串。需要存储在数组中的一些代码需要使用if语句进行测试。在我知道我需要一些代码需要以这种方式进行测试之前,一切都运行得很完美,但现在我知道存储的字符串是基于'if-statement'我不知道如何编码它。因为我需要结束当前插槽的标记才能插入php条件语句。结果,我无法继续将数据存储在“当前”插槽中,这就是我所需要的。

我一直在努力寻找工作超过一个小时,我很感激任何帮助。

$favorites[] = '
        <tr>
          <td><a href="#">'.$files_row['name'].'</a></td>
          <td><a href="#"><img class="table-button" src="images/smallglobe.png"></a></td>
          <td>
            <img src="images/e-mail-icon.PNG">';
                if(strcmp($_files_row['email'],'none') != 0){
                    $favorites[] = '<div style="display:none;"><a href="#" >'.$files_row['email'].'</a></div>';
                }
$favorites[]='        
         </td>
          <td class="table-button-cell">
            <img class="table-button" src="images/eicon.png">
            <div class="phonepopup" style="display:none;">Call: '.$files_row['phone'].'</div>
          </td>
          <td class="table-button-cell"> .... etc....

3 个答案:

答案 0 :(得分:2)

尝试在当前插槽中使用临时变量,并在评估if语句后将其分配给数组。所以你可以连接必要的字符串:

$temp_var = '
    <tr>
      <td><a href="#">'.$files_row['name'].'</a></td>
      <td><a href="#"><img class="table-button" src="images/smallglobe.png"></a></td>
      <td>
        <img src="images/e-mail-icon.PNG">';
            if(strcmp($_files_row['email'],'none') != 0){
                $temp_var .= '<div style="display:none;"><a href="#" >'.$files_row['email'].'</a></div>';
            }
$temp_var .='        
     </td>
      <td class="table-button-cell">
        <img class="table-button" src="images/eicon.png">
        <div class="phonepopup" style="display:none;">Call: '.$files_row['phone'].'</div>
      </td>
      <td class="table-button-cell"> .... etc....';

$favorites[] = $temp_var;

答案 1 :(得分:1)

您可以内联连接文本或说明:

$favorites[5] = 'I prefer '.($age > 18 ? : 'natural' : 'chocolate').' milk';

(condition?true:false)语法创造了奇迹;)

答案 2 :(得分:0)

您有两种选择:

选项一:使用串联附加字符串。

  $favorites[index] = '
    <tr>
        <td><a href="#">'.$files_row['name'].'</a></td>
        <td><a href="#"><img class="table-button" src="images/smallglobe.png"></a></td>
        <td>
            <img src="images/e-mail-icon.PNG">';
    if(strcmp($_files_row['email'],'none') != 0){
        $favorites[index] .= '<div style="display:none;"><a href="#" >'.$files_row['email'].'</a></div>';
    }
    $favorites[index] .= '        
         </td>
         <td class="table-button-cell">
             <img class="table-button" src="images/eicon.png">
             <div class="phonepopup" style="display:none;">Call: '.$files_row['phone'].'</div>
         </td>
         <td class="table-button-cell"> .... etc....

Option 2: Use PHP's ternary operator to do the conditional code inline.

    $favorites[index] = '
        <tr>
          <td><a href="#">'.$files_row['name'].'</a></td>
          <td><a href="#"><img class="table-button" src="images/smallglobe.png"></a></td>
          <td>
            <img src="images/e-mail-icon.PNG">' . ((strcmp($_files_row['email'],'none') != 0) ? '<div style="display:none;"><a href="#" >'.$files_row['email'].'</a></div>' : '') . '        
         </td>
          <td class="table-button-cell">
            <img class="table-button" src="images/eicon.png">
            <div class="phonepopup" style="display:none;">Call: '.$files_row['phone'].'</div>
          </td>
          <td class="table-button-cell"> .... etc....