Mantis - Quercus
|
|||||
Viewing Issue Advanced Details | |||||
|
|||||
ID: | Category: | Severity: | Reproducibility: | Date Submitted: | Last Update: |
4062 | block | always | 06-02-10 02:45 | 06-02-10 05:52 | |
|
|||||
Reporter: | sblommers | Platform: | Linux | ||
Assigned To: | OS: | Ubuntu | |||
Priority: | normal | OS Version: | 10.04 | ||
Status: | new | Product Version: | 4.0.8 | ||
Product Build: | SVN | Resolution: | open | ||
Projection: | none | ||||
ETA: | none | Fixed in Version: | |||
|
|||||
Summary: | 0004062: Quercus array() type check on != not fully compatible with PHP | ||||
Description: |
When checking the following: $var = array(); $var != "" => FALSE (but should be TRUE) $var != true => FALSE (but should also be TRUE) $var2 = array("A", "B"); $var2 != true => TRUE (but this should be FALSE) |
||||
Steps To Reproduce: |
Use the type checking table against APACHE+PHP and on QUERCUS https://streamconsulting.nl/drop/array-notequals-checking.php [^] here is the code if you are not able to download it: <?php $TEST_VAR = array( '|NULL' => NULL, '|"NULL"' => "NULL", '|false' => false, '|true' => true, '|FALSE' => FALSE, '|TRUE' => TRUE, '|"false"' => "false", '|"true"' => "true", '|0' => 0, '|1' => 1, '|"0"' => "0", '|"1"' => "1", '|NotExsist' => $notexist, '|""' => "", '|array()' => array(), '|array("A", "B")' => array("A", "B"), '|$_GET' => $_GET, '|$_POST' => $_POST, '|count($_GET)' => count($_GET), '|count($_POST)' => count($_POST), '|1.5' => 1.5, '|1e7' => 1e7, '|-14' => -14, '|005' => 005, '|(object) "Halo"' => (object) "Halo", '|fopen("php://stdin")' [^] => fopen("php://stdin", [^] "r") ); $CASE = array( '$var != ""', '!isset($var)', '!is_null($var)', '$var != NULL', '$var !== NULL', '!empty($var)', '$var != true', '$var !== true', '$var != false', '$var !== false', '!is_bool($var)', '!is_numeric($var)', '!is_int($var)', '!is_float($var)', '!is_array($var)', '!is_object($var)', '!is_resource($var)', ); $T = 'TRUE'; $F = 'FALSE'; /* CSS */ $lf = "\r\n"; $ds = " "; $gt = '>'; $q = '"'; $ac = ' align="center"'; $t = ' style='; $b = 'background-'; $c = 'color:'; $c1 = $t.$q.$b.$c.'#EBEBEB'.$q; $w = 'white-space:nowrap;'; $br = ' '; $s1 = '<span'; $s2 = '</span>'; $T = $s1.$t.$q.$c.'0000FF'.$q.$gt.$T.$s2; $F = $s1.$t.$q.$c.'#FF0000'.$q.$gt.$F.$s2; $t1 = '<table border="1" cellspacing="2" cellpadding="5"'.$t.$q; $t1 .= 'font-weight:bold; font-size:9px; font-family:Tahoma,Arial;'.$q.$gt; $t2 = '</table>'; $r1 = '<tr'; $r2 = '</tr>'; $d1 = '<td'; $d2 = '</td>'; $K = array_keys($TEST_VAR); $n = count($K); $m = count($CASE); $da = $ds.$ds.$d1.$ac.$gt; $dz = $d2.$lf; echo $t1.$lf; $v = 14; for ($i=0; $i<$n; $i++) { if ( ($i != ($n-1)) && ($v > 13) ) { echo $ds.$r1.$t.$q.$b.$c.'#CCCCCC'.$q.$gt.$lf; echo $ds.$ds.$d1.$ac.$gt .'$VAR/IF NOT' .$dz; for ($j=0; $j<$m; $j++) { echo $ds.$ds.$d1.$ac.$t.$q.$w.$q.$gt .htmlspecialchars($CASE[$j],ENT_QUOTES) .$dz; } echo $ds.$ds.$d1.$ac.$gt .'$VAR/IF NOT' .$dz; echo $ds.$r2.$lf; $v = 0; } $v += 1; echo $ds.$r1.(($ch=(($ch)?false:true))?'':$c1).$gt.$lf; echo $ds.$ds.$d1.$ac.$t.$q.$w.$q.$gt .(htmlspecialchars(trim($K[$i],"|"),ENT_QUOTES)) .$dz; /* ($var != "")? */ echo $da .(( $TEST_VAR[($K[$i])] != "" ) ? $T:$F) .$dz; /* (!isset($var))? */ echo $da .(( !isset($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_null($var))? */ echo $da .(( !is_null($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* ($var != NULL)? */ echo $da .(( $TEST_VAR[($K[$i])] != NULL ) ? $T:$F) .$dz; /* ($var !== NULL)? */ echo $da .(( $TEST_VAR[($K[$i])] !== NULL ) ? $T:$F) .$dz; /* (!empty($var))? */ echo $da .(( !empty($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* ($var != true)? */ echo $da .(( $TEST_VAR[($K[$i])] != true ) ? $T:$F) .$dz; /* ($var !== true)? */ echo $da .(( $TEST_VAR[($K[$i])] !== true ) ? $T:$F) .$dz; /* ($var != false)? */ echo $da .(( $TEST_VAR[($K[$i])] != false ) ? $T:$F) .$dz; /* ($var !== false)? */ echo $da .(( $TEST_VAR[($K[$i])] !== false ) ? $T:$F) .$dz; /* (!is_bool($var))? */ echo $da .(( !is_bool($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_numeric($var))? */ echo $da .(( !is_numeric($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_int($var))? */ echo $da .(( !is_int($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_float($var))? */ echo $da .(( !is_float($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_array($var))? */ echo $da .(( !is_array($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_object($var))? */ echo $da .(( !is_object($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; /* (!is_resource($var))? */ echo $da .(( !is_resource($TEST_VAR[($K[$i])]) ) ? $T:$F) .$dz; echo $ds.$ds.$d1.$ac.$t.$q.$w.$q.$gt .(htmlspecialchars(trim(trim($K[$i],"|")),ENT_QUOTES)) .$dz; echo $ds.$r2.$lf; } echo $t2.$lf; @fclose($file_handle); function n0t($var=false) { return (( (!isset($var)) || ((!$var) && ($var !== "0")) )? true: false); } ?> |
||||
Additional Information: | |||||
Relationships | |||||
Attached Files: |
Notes | |||||
|
|||||
|
|