测试条件不使用临时变量

时间:2015-01-17 13:22:07

标签: php

如何编写以便不需要临时变量$x1$x2

$x1=isset($_POST['x'])?$_POST['x']:(isset($_GET['x'])?$_GET['x']:null);
$x2=isset($_SESSION['x'])?$_SESSION['x']:null;
if(!$x1 || $x1!=$x2) {}

例如,我可以做以下事情,但是,期望它可以减少。

if(
  !isset($_POST['x'])?$_POST['x']:(isset($_GET['x'])?$_GET['x']:null)
  || isset($_POST['x'])?$_POST['x']:(isset($_GET['x'])?$_GET['x']:null)!=isset($_SESSION['x'])?$_SESSION['x']:null
) {}

2 个答案:

答案 0 :(得分:1)

您可以使用_REQUEST代替$_POST$_GET

if(!isset($_REQUEST['x']) || $_REQUEST['x'] != $_SESSION['x']) {}

答案 1 :(得分:0)

你在说:

$x1=isset($_POST['x'])?$_POST['x']:(isset($_GET['x'])?$_GET['x']:null); 
$x2=isset($_SESSION['x'])?$_SESSION['x']:null;
if(!$x1 || $x1!=$x2) {}

这与说法相同:

if(不是post-x有值或者get-x有值) 或者不是session-x有值)

这与:

相同
 if (!isset($_POST['x']) || !isset($_GET['x'] || !isset($_SESSION['x']))