この行は、関数から返された値を代入し、自分の正直な意見では、これはしかし、コードの不思議な作品です
を定義する必要がありませんobject::function('letsgo')
を変数$myobjectfunction
に設定します。戻り値が真偽値(ブール値TRUE
)であれば、その変数の内容はPHPコード(eval
)として評価されます。最初の返品がFALSE
だった場合、それ以上の措置はとられません。最後にfalse
は基本的に何もしません。
これは、通常は何も使用されていないにもかかわらず、PHPが代入から値を返すためです。ただし、コードの場合は、代入からの戻り値を使用して、三項演算子のどの枝が括弧で囲まれているかを判断します。
$x = 3;
// returns 3 even if we don't use it...
括弧が初期割り当ての前後にあるため、これは珍しいことです。
($myobjectfunction = object::function('letsgo')) ? eval($myobjectfunction) : false;
//^^---------------------------------------------^^^
三項演算子のより典型的な使い方は次のよう=
の右側に条件に基づいて、左側の変数に?
のいずれかの側の出力を割り当てることになる。
$myobjectfunction = object::function('letsgo') ? $someothervalue : false;
「3値if文」のようなものはありません。また、この構文は、このサイト上の_allだけでなく、良いPHPの本にも含まれています_。どのような研究をしましたか? –
また、 'object'が定義されていないと、このコードは解析されず、実行されません。 –
'object :: function( 'letsgo')が返すものは何か不思議です。あなたは、コードがevalされたときに害を及ぼさないと確信しているようです。'eval()'が存在するのは良いことですが、実際には使用しないでください。 – Arjan