2012-03-29 93 views
0

我有一个意想不到的;错误在这条线上:如何解决此通知错误

$ action =($ sessionMinus == $ _SESSION ['initial_count'])? 'create_session2.php';

但是,如果我删除;那么它意味着意想不到的{在下面的行中,这怎么能被解决?

低于全码:

if ($sessionMinus == $_SESSION['initial_count']){ 

    $action = ($sessionMinus == $_SESSION['initial_count']) ? 'create_session2.php'; 

}else if($sessionMinus != $_SESSION['initial_count']){ 

    $action = ($sessionMinus != $_SESSION['initial_count']) ? $_SERVER['PHP_SELF']; 

} 

回答

1

要使用的三元运算符,你需要有值,当条件真假两:

$action = ($sessionMinus != $_SESSION['initial_count']) ? $_SERVER['PHP_SELF'] : "false"; 

我不知道为什么你要做两次检查,下面应该就足够了:

<?php 
if ($sessionMinus == $_SESSION['initial_count']){ 

    $action = 'create_session2.php'; 

}else($sessionMinus != $_SESSION['initial_count']){ 

    $action = $_SERVER['PHP_SELF']; 

} 
+0

谢谢,最好回答 – user1292857 2012-03-29 23:37:36

+0

其实第二个'if'语句可以被删除。 – Shoe 2012-03-29 23:39:26

+0

@JeffPigarelli:我好像已经看完了。编辑:) – F21 2012-03-29 23:41:14

1

你有一个简短的if语句:[condition] ? [if_true] : [if_false]

: [if_false]部分缺失

0

三元操作需要你,如果条件是添加备用不是真的(而是它是假的):

$action = ($sessionMinus == $_SESSION['initial_count']) ? 'create_session2.php' : 'was_false'; 

的伪样子:

$variable = ($condition == true) ? true : false; 

您可以阅读更多有关比较运算符(和三元)here

0

你可能会忘记其他命令

$action = ($sessionMinus == $_SESSION['initial_count']) ? 'create_session2.php':''; 
0

你们所有的代码都可以改写为:

$action = ($sessionMinus == $_SESSION['initial_count']) ? 'create_session2.php' : $_SERVER['PHP_SELF']; 

玩得开心。

+0

我试过这种方式,但它没有执行我想要的动作 – user1292857 2012-03-29 23:42:39

+0

@ user1292857,这正是你的原始代码所做的,man。 – Shoe 2012-03-29 23:44:36

+0

是在我提到的代码之前,我的问题与我所做的完全一样,问题是如果有匹配,那么它可以正常工作,但我从来没有说过发生了什么,如果没有匹配,我认为:$ _SERVER ['PHP_SELF']会这样做,但它没有 – user1292857 2012-03-29 23:50:16