-1

これは非常に冗長であり、要求されているパーツと、選択されている複数のパーツのバリエーションに関係なく、「OK TO SEND」と言いたいのは 1 回だけです。

if ($this->part1) return "OK TO SEND: $this->part1 ";
if ($this->part2) return "OK TO SEND: $this->part2 ";
if ($this->part3) return "OK TO SEND: $this->part3 ";
if ($this->part4) return "OK TO SEND: $this->part4 ";
if ($this->part5) return "OK TO SEND: $this->part5 ";
if ($this->part6) return "OK TO SEND: $this->part6 ";
if ($this->part7) return "OK TO SEND: $this->part7 ";

if ステートメントと ifelse ステートメントまたはループを使用するだけかどうかはわかりません。ループが最も効率的であると確信しています。どんな助けでも大歓迎です。

このようなもの?

$params = array($this->part1, $this->part2, $this->part3, $this->part4, $this->part5, $this->part6, $this->part7) ;

in_array 関数を使用しますか?

4

2 に答える 2

1

多分このようなもの:

$params = array($this->part1, $this->part2, $this->part3, $this->part4, $this->part5, $this->part6, $this->part7);

// This will return a string noting the only option selected
function partRequested($params) {
  foreach($params as $part) {
    if($part) // or maybe ($part !== false) depending on what is contained
      return 'OK TO SEND: ' . $part . ' ';
  }
}

// This will return a single string noting all the options selected
function partsRequested($params) {
  foreach($params as $part) {
    if($part) // or maybe ($part !== false) depending on what is contained
      $result .= 'OK TO SEND: ' . $part . ' <br />';
  }
  return $result;
}

partsRequested() から返される文字列は次のようになります。

OK TO SEND: part1
OK TO SEND: part3
OK TO SEND: part4
OK TO SEND: part5
// etc

ここでは、少し異なるフォーマットを使用しています

// This will return a single string noting all the options selected, different formatting
function partsRequested($params) {
  foreach($params as $part) {
    if($part) // or maybe ($part !== false) depending on what is contained
      $result .= $part . ' <br />';
  }
  return $result;
}

// Then to echo the results
if($result = partsRequested($params))
  echo 'OK TO SEND: ' . $result;

エコーされる文字列は次のようになります。

OK TO SEND: part1
part3
part4
part5
于 2013-06-17T18:40:11.757 に答える