PHPの基本的な質問ですが、私の理解は間違っていますか?

WBOY
リリース: 2016-06-23 13:50:32
オリジナル
1014 人が閲覧しました

$c = 10;if ((($a > 0) + ($b > 0) + ($c > 0) + ($d> 0) != 1)) {	message('成功');}else{      message('失败')}
ログイン後にコピー


すみません、$c は 10 です。if ステートメントで失敗が出力されるのはなぜですか? ?どのように理解すればよいでしょうか? a、b、d はすべて空です ($c>0) c が返されるとき、
c は 10 なので c! =1
出力は成功するはずではありませんか?
私の理解が間違っていたと思いますので、アドバイスをお願いします。


ディスカッションへの返信 (解決策)

$c = 10;if (((($a > 0) + ($b > 0) + ($c > 0) + ($d> 0)) != 1)) {    message('成功');}else{      message('失败')}
ログイン後にコピー

error_reporting(E_ALL ^ E_NOTICE);$c = 10;echo ($a > 0) + ($b > 0) + ($c > 0) + ($d> 0);
ログイン後にコピー
は 1 を出力します
So if ((($a > 0) + ($b > 0) + ($c > 0) + ($ d> 0) != 1)) { 正しくありません (1 != 1)
したがって、else 分岐を実行します

$c = 10

if ((($a > 0) + ($b > 0) + ( $c > 0) + ($d> 0) != 1)) {

$a は未定?, したがって ($a > 0) は false,??int type?0 を返します
$b は未定?、したがって、($b > 0) は false、??int 型?0 を返します
$c=10、したがって、(10 > 0) は true、??int 型?1 を返します
$d は未定?、したがって($d > 0) return false, int type 0

?文が重い? そうすると
if((0+0+1+0)!=1){

ありがとうございます。 false と true を返すこと。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!