0

私はステートメントを練習していて、問題に遭遇しました。$child3利用できる場合は、echo3人の子供全員が利用できるようにしようとしています。たとえば$child2、利用できる場合は、echoKim&Pomです。私は何を間違えましたか?

$child = "Kim";
$child2 = "Pom";
$child3 = "Rob";

if($child2) {
    echo $child; echo " "; echo $child2;
} elseif($child3) {
    echo $child; echo " "; echo $child2; echo " "; echo $child3;
} else {
    echo $child;
}
4

7 に答える 7

1

elseifif上記のsまたはsのいずれも実行されなかった場合にのみ実行elseifされます。だからあなたはそれを他の上に動かしたいと思うでしょうif

if($child3) {
    echo $child; echo " "; echo $child2; echo " "; echo $child3;
} elseif($child2) {
    echo $child; echo " "; echo $child2;
} else {
    echo $child;
}
于 2012-06-11T23:31:30.330 に答える
1

条件を逆にしてみてください。

$child = "Kim";
$child2 = "Pom";
$child3 = "Rob";

if($child3){
    echo $child . " " . $child2 . " " . $child3;
}else if($child2){
    echo $child . " " . $child2;
}else{
    echo $child;
}

すばらしい文字列連結演算子もお勧め.です。

于 2012-06-11T23:31:32.983 に答える
1

おそらくあなたはこのようなものが欲しいでしょう:

$child = 1; // Or $child = 2; Or $child = 3;

if ($child == 1) {
    echo 'Kim';
} elseif ($child == 2) {
    echo 'Pom';
} else {
    echo 'Rob';
}

しかし、私はswitch()あなたが持っているとすぐにお勧めしますelseif

于 2012-06-11T23:34:03.370 に答える
0
$child = "Kim";
$child2 = "Pom";
$child3 = "Rob";

if($child3){
    echo $child; echo " "; echo $child2; echo " "; echo $child3;
}elseif($child2){
    echo $child; echo " "; echo $child2;
}else{
    echo $child;
}
于 2012-06-11T23:31:59.840 に答える
0

それが実際のコードである場合は、常にそうであるようにKim Rob、取得するだけで、句をバイパスします。$child2trueelse

また、を組み合わせて次echoのようにすることもできます。

echo "$child $child2 $child3";

それはそのように読むことをはるかに簡単にします。

于 2012-06-11T23:32:22.617 に答える
0

これはどう?

if ($child) {
   echo "{$child} ";
}
if ($child2) {
   echo "{$child2} ";
}
if ($child3) {
   echo "{$child3} ";
}
于 2012-06-11T23:33:28.113 に答える
0

これが私がそれをする方法です。私は、スイッチがより明確/より良いものになるというドラゴンに同意します。

switch (true)
{
  case (isset($child,$child2,$child3)) : 
    echo $child . ' ' . $child2 . ' ' . $child3;
    break;
  case (isset($child, $child2)) :
    echo $child . ' ' . $child2;
    break;
  case (isset($child)) :
    echo $child;
    break;
}
于 2012-06-12T00:00:52.617 に答える