-2

前回のプロジェクトでは、値を指定する必要がありました。通常、次のステートメントを使用します。

<?php 
  $true = 1;
  $false = 0;
  $hasAccess = $true ? 1 : 0;
  print $hasAccess;
?>

しかし、これは次のように機能します。

<?php 
  $true = 1;
  $false = 0;
  $hasAccess = $true || $false;
  print $hasAccess;
?>

なんで?

更新:私は何のORを知っています/ || と私はそれから何を期待しなければなりません。しかし、私はこれまでこの可能性を見たことがありません。

4

4 に答える 4

1

なぜなら

$true ? 1 : 0;

trueであるため1、に評価され、$true

$true || $false;

1同じ理由で、と評価されます。

于 2012-04-17T09:17:33.197 に答える
1

0は自動的に(bool)falseにキャストされ、それ以外は(bool)trueにキャストされるためです。つまり、基本的に言っているのは次のとおりです。

$hasaccess = true OR false;

参照: http : //php.net/manual/en/language.types.boolean.php http://php.net/manual/en/language.operators.logical.php

于 2012-04-17T09:18:21.263 に答える
0

式のいずれかの側がtrueの場合、ORはtrueを返します。

$ true = 1なので、式全体が真になります。

基本的に、「$ trueがtrueの場合、または$ falseがtrueの場合、$hasAccessはtrueです」と言っています。

于 2012-04-17T09:20:56.080 に答える
0

|| これはORステートメントであり、ステートメントの1つがtrueと評価された天気を返します。例:

$bool = true || false;
// $bool = true

$bool = false || true;
// $bool = true

$bool = false || false;
// $bool = false

$bool = false || true || false;
// $bool = true

$bool = false || 1;
// $bool = true

$bool = false || 'test';
// $bool = true
于 2012-04-17T09:25:11.133 に答える