2

どこ:

$b = true;
$c = 0;
$a = ($a ? ($a ? $b : $c) : ($c ? $a : $b));

私はうまくいく方法がわかりません。

したがって、これは省略形の演算子であることを理解しており、通常は次の場合です。

$value ? true : false

意味

if $a = true { true } else { false };

それで:

if $a{
    if $a{
        true;}
    else{
        0;};
else{
 if $0{
    $a;}
else{
    true;}
};

これは $a の値を true にしますか?

4

2 に答える 2

1

コードをそのまま実行すると、次のようになります。Notice: Undefined variable: a in myfile.php on line 4

したがって、私は$aどこか早い段階で設定されていると仮定します。ただし、$a の前の値が何であれ、$a が true または false に評価できる場合、次の理由により、コードを実行した後でも $a は true になります。

$a が true の場合、最初の部分は $a = $b となり、$b = true であることがわかります。

if(TRUE) {
  if(TRUE) {
     $a = $b;  //AND $b == TRUE
  } else {
     $a = $c;
  }
} else {
    ...
}

$a が false の場合、2 番目の部分は $a = $b を再び生成します。

if(FALSE) {
    ...
} else {
  if(0) {    // 0 will equate to FALSE
     ...
  } else {
    // 0 is the same as FALSE so we end up again with $a = $b
     $a = $b;  //AND $b == TRUE
  }
}

実際、このコードを実行すると、$a の値が両方とも true であることが示されます。

<?php
$a = false;
$b = true;
$c = 0;
$a = ($a ? ($a ? $b : $c) : ($c ? $a : $b));

echo $a;

$a = true;
$b = true;
$c = 0;
$a = ($a ? ($a ? $b : $c) : ($c ? $a : $b));

echo $a;
于 2016-02-24T01:18:18.267 に答える