【问题标题】:Tidy up PHP echo code [duplicate]整理 PHP 回显代码 [重复]
【发布时间】:2017-11-07 10:16:37
【问题描述】:

虽然我已经尝试过几种不同的方法但都失败了,但我还是提前道歉,显然我还不是 php 专业人士。 我正在寻找一种方法来整理我的代码,我很确定我不需要为每一行不断输入“echo”,但无法弄清楚如何组合我的代码以达到相同的结果,有什么想法吗?

<?php
$values = get_field('bothscoreno');
$url    = "$values";
$arr    = str_split("$url, PHP_URL_QUERY");
if ($url) {
    echo $arr[11];
    echo $arr[12];
    echo $arr[13];
    echo $arr[14];
    echo $arr[15];
    echo $arr[16];
} else {
    echo 'No';
}
?>

提前致谢。

【问题讨论】:

  • 你能更精确一点吗?如果你想看看数组里面有什么,你可以做 var_dump($url) 或 print_r($url)。我还没有很好地理解你的问题
  • foreach ($arr as &$value) { echo $value; }
  • 您应该向我们提供有关代码试图实现的目标的更多信息,因为在我看来,代码中似乎存在需要解决和整理的错误。但是忽略这些错误,您可以在一行代码中实现与上述大多数功能相同的功能。
  • 辛巴你的回答完美无缺,非常感谢,对不起我糟糕的代码/添加混乱!

标签: php


【解决方案1】:

您发布的代码可能存在错误,因为它的编写方式看起来像是打算做一些与实际要做的事情不同的事情。

str_split() 将接受一个字符串并输出一个单个字符的数组。看起来您正在尝试向它传递两个参数,但将它们括在引号中意味着它实际上只是一个字符串。

因此,如果$url 等于abc,您的str_split() 调用将输出abc,P 的数组, HP_URL_……等

我不认为那是你的本意。

但是,如果这是您想要的,那么您将拆分字符串,只是为了将一些字符重新与echo 重新连接在一起。因此,您可以将整个事情简化如下:

$url = get_field('bothscoreno');
if ($url) {
   echo substr($url, 11, 6);
} else {
    echo "No.";
}

如果我是对的并且这不是你真正想要做的,那么我建议要么编辑问题以澄清或提出一个全新的问题。

【讨论】:

  • 哇!伙计,非常感谢,这太完美了,我对你做的这么简单感到震惊!我有很多东西要学!非常感谢你
【解决方案2】:

使用 for 循环并从 14 开始索引以回显您的结果

$values = get_field('bothscoreno');
$url    = $values;
$arr    = str_split("$url, PHP_URL_QUERY");
$string = '';
if ($url) {
  for($i = 11;$i <= 16;$i++){
    $string .= $arr[$i];
  }
} else {
    $string = 'No';
}

echo $string;

【讨论】:

    【解决方案3】:

    将该点用作concatenation operator

    echo $arr[11].$arr[12]
    

    【讨论】:

      【解决方案4】:

      PHP 中,您可以使用. 作为连接运算符。

      请看下面的代码:

      <?php
      $values = get_field('bothscoreno');
      $url    = "$values";
      $arr    = str_split("$url, PHP_URL_QUERY");
      if ($url) {
          echo $arr[11].
          $arr[12].
          $arr[13].
          $arr[14].
          $arr[15].
          $arr[16];
      } else {
          echo 'No';
      }

      希望这会有所帮助!

      【讨论】:

        【解决方案5】:

        使用 array_slice

        <?php
            $values = get_field('bothscoreno');
            $url    = "$values";
            $arr    = str_split("$url, PHP_URL_QUERY");
            if ($url) {
                $subArr = array_slice($arr, 11, 6);
                print_r($subArr);
        
                // Or...
                foreach ($subArr as $val) {
                  echo $val;
                }
            } else {
                echo 'No';
            }
            ?>
        

        【讨论】:

          猜你喜欢
          • 2013-06-14
          • 2011-04-04
          • 2012-09-03
          • 2011-12-28
          • 1970-01-01
          • 2012-10-25
          • 2018-03-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多