$this->referer= (!empty($_SERVER['HTTP_REFERER'])) ? htmlspecialchars((string) $_SERVER['HTTP_REFERER']) : '';
我需要找到我的user_id,这是通常的条件:
if(is_user($user)){
$cookie=cookiedecode($user);
$user_id=intval($cookie[0]);
}
我想它应该是这样的:
$this->user_id = (is_user($user)) ? (cookiedecode($user)) : $cookie[0];
但它没有用
答案 0 :(得分:2)
这样的方式:
if(is_user($user)){
$cookie=cookiedecode($user);
$this->user_id =intval($cookie[0]);
}
答案 1 :(得分:2)
应谨慎使用三元运算符,并且只有在逻辑足够简单以保持可读性时!变得过于复杂,而且难以理解,速记的重要性超过了它的实用性。
三元运算符一次只能使用一个变量分配。这是manual example
<?php
// Example usage for: Ternary Operator
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
// The above is identical to this if/else statement
if (empty($_POST['action'])) {
$action = 'default';
} else {
$action = $_POST['action'];
}
你的例子
$this->user_id = (is_user($user)) ? (cookiedecode($user)) : $cookie[0];
如果cookiedecode($user)
返回true,会将user_id分配给is_user()
,如果不是,则将$cookie[0]
分配给{{1}}。
鉴于此:
答案 2 :(得分:0)
if(is_user($user)){
$cookie=cookiedecode($user);
$this->user_id =intval($cookie[0]);
}
I didn't see any ELSE statement in your code and i don't understand on why do you want to use short form of conditional statement.