Php 什么';这些非语法和可选语法之间的区别是什么

Php 什么';这些非语法和可选语法之间的区别是什么,php,Php,1。可选语法 <?php if ($pager instanceof sfPropelPager): ?> <?php foreach ($pager->getResults() as $iNo => $item): ?> <tr class="<?php echo $iNo % 2 == 0 ? "dataRowOdd" : "dataRowEven";?>" style="height: 20px;"> &l

1。可选语法

<?php if ($pager instanceof sfPropelPager): ?>
<?php foreach ($pager->getResults() as $iNo => $item): ?>
    <tr class="<?php echo $iNo % 2 == 0 ? "dataRowOdd" : "dataRowEven";?>" style="height: 20px;">
        <td>
            <?php echo "<a href='extData/extView?id={$item->getId()}'></a>" ?>
        </td>
        <td>
            <?php echo $item->getDate("d.m.Y");?>
        </td>
    </tr>
<?php endforeach; ?>
<?php endif;?>


作为一名开发人员,您可以选择更喜欢哪一种。你说你更喜欢第二个选项,那么为什么不使用它呢。

作为一名开发人员,你可以选择你更喜欢的选项。你说你更喜欢第二个选项,那么为什么不使用它呢。

第二个代码看起来更干净、更容易阅读,但我还是喜欢使用它来避免混淆引号和分号,即:

  if ($pager instanceof sfPropelPager)
  {
      foreach ($pager->getResults() as $iNo => $item)
      {
          $rowClass = $iNo % 2 == 0 ? 'dataRowOdd' : 'dataRowEven';
          echo <<< LOL
          <tr class='$rowClass' style='height: 20px;'>
          <td> <a href='extData/extView?id={$item->getId()}'>#{$item->getId()}</a> </td>
          <td> {$item->getDate('d.M.Y')} </td>
          </tr>
LOL;

      }
  }
if($sfpropelpage的寻呼机实例)
{
foreach($pager->getResults()作为$iNo=>$item)
{
$rowClass=$iNo%2==0?'dataRowOdd':'DataRow偶数';

echo第二个second代码看起来更干净、更易于阅读,但我仍然喜欢使用,以避免与引号和分号混淆,即:

  if ($pager instanceof sfPropelPager)
  {
      foreach ($pager->getResults() as $iNo => $item)
      {
          $rowClass = $iNo % 2 == 0 ? 'dataRowOdd' : 'dataRowEven';
          echo <<< LOL
          <tr class='$rowClass' style='height: 20px;'>
          <td> <a href='extData/extView?id={$item->getId()}'>#{$item->getId()}</a> </td>
          <td> {$item->getDate('d.M.Y')} </td>
          </tr>
LOL;

      }
  }
if($sfpropelpage的寻呼机实例)
{
foreach($pager->getResults()作为$iNo=>$item)
{
$rowClass=$iNo%2==0?'dataRowOdd':'DataRow偶数';

echo对于第一个示例使用:

优势:

  • 它们比较短
  • 它们很容易写
缺点:

  • 但我不推荐它们,因为当使用替代语法时,可能会导致一些语法错误。例如:空白
  • 此外,当涉及到庞大的代码时,您可能会发现很难做到这一点 每一句话,找出错误
同样,对于第二个示例,您可以更改
回显部分。因为您总是回显它。您可以像下面那样使用它

$html = '';

if ($pager instanceof sfPropelPager)
  {
      foreach ($pager->getResults() as $iNo => $item)
      {
          $rowClass = $iNo % 2 == 0 ? 'dataRowOdd' : 'dataRowEven';
          $html .= "<tr class='$rowClass' style='height: 20px;'>";
          $html .= "<td> <a href='extData/extView?id={$item->getId()}'>#{$item->getId()}</a> </td>";
          $html .= "<td> {$item->getDate('d.M.Y')} </td>";
          $html .= "</tr>";
      }

      echo $html;
  }
$html='';
if($SFPROPERLPAGER的寻呼机实例)
{
foreach($pager->getResults()作为$iNo=>$item)
{
$rowClass=$iNo%2==0?'dataRowOdd':'DataRow偶数';
$html.=”;
$html.=”;
$html.=“{$item->getDate('d.M.Y')}”;
$html.=”;
}
echo$html;
}

对于第一个示例使用:

优势:

  • 它们比较短
  • 它们很容易写
缺点:

  • 但我不推荐它们,因为当使用替代语法时,可能会导致一些语法错误。例如:空白
  • 此外,当涉及到庞大的代码时,您可能会发现很难做到这一点 每一句话,找出错误
同样,对于第二个示例,您可以更改
回显部分。因为您总是回显它。您可以像下面那样使用它

$html = '';

if ($pager instanceof sfPropelPager)
  {
      foreach ($pager->getResults() as $iNo => $item)
      {
          $rowClass = $iNo % 2 == 0 ? 'dataRowOdd' : 'dataRowEven';
          $html .= "<tr class='$rowClass' style='height: 20px;'>";
          $html .= "<td> <a href='extData/extView?id={$item->getId()}'>#{$item->getId()}</a> </td>";
          $html .= "<td> {$item->getDate('d.M.Y')} </td>";
          $html .= "</tr>";
      }

      echo $html;
  }
$html='';
if($SFPROPERLPAGER的寻呼机实例)
{
foreach($pager->getResults()作为$iNo=>$item)
{
$rowClass=$iNo%2==0?'dataRowOdd':'DataRow偶数';
$html.=”;
$html.=”;
$html.=“{$item->getDate('d.M.Y')}”;
$html.=”;
}
echo$html;
}


一个是替代语法。第一个示例已经解释。显然,它只是在语法上略有不同。这只是不同的语法样式-完全取决于您和您的团队,您发现它们更易于支持和维护。没有技术优势。每种样式都有向上/向下的方面吗?或者它们与其他样式完全相似呃?在你的编码风格中,总是倾向于可读性和可维护性。使用你喜欢的风格。一个是替代语法。第一个例子已经解释过了。很明显,它只是在语法上有点不同。这只是不同的语法风格-完全取决于你和你的团队,你觉得更容易支持和维护。没有什么特别之处技术上的优势。每种风格有什么好的方面?或者它们完全相似?总是倾向于编码风格的可读性和可维护性。使用你喜欢的风格。是的,我坚持使用第二种风格,因为它对我来说更舒适。但是,对于任何技术或性能原因,我一点也不知道。@choz他们只是alternative语法,几乎没有技术或性能差异。如果第二种语法更合适,就坚持使用它。是的,我坚持使用第二种语法,因为它对我来说更舒适。但是,对于任何技术或性能原因,我一点也不知道。@choz它们只是替代语法,几乎没有技术或性能差异。只是对于第一个例子,你使用短标记:“我没有看到任何php短标记(
@PedroLobito,这是个错误,。我读得很快,得到的是使用php短标记的结果。。当你说只有我能识别。。谢谢!我已经更新了我的答案n.P.,我只是没有看到更新反映在你的答案上;)@PedroLobito check:)“对于第一个使用短标记的示例:“我没有看到任何php短标记(
@PedroLobito这是一个错误..我读得很快,并且是使用php短标记得到的..当你说只有我能识别..谢谢!我已经更新了我的答案n.P.,我只是看不到你答案上反映的更新;)@PedroLobito check:)