Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中编写此条件_Php_Class - Fatal编程技术网

如何在php中编写此条件

如何在php中编写此条件,php,class,Php,Class,嘿,伙计们,我在写一个类,我想知道如何用这种方式写一个条件语句: $this->referer= (!empty($_SERVER['HTTP_REFERER'])) ? htmlspecialchars((string) $_SERVER['HTTP_REFERER']) : ''; 我需要找到我的用户id,这是通常的条件: if(is_user($user)){ $cookie=cookiedecode($user); $user_id=in

嘿,伙计们,我在写一个类,我想知道如何用这种方式写一个条件语句:

$this->referer= (!empty($_SERVER['HTTP_REFERER'])) ? htmlspecialchars((string) $_SERVER['HTTP_REFERER']) : '';
我需要找到我的用户id,这是通常的条件:

    if(is_user($user)){ 
        $cookie=cookiedecode($user);
        $user_id=intval($cookie[0]);
    }
我认为应该是这样的:

    $this->user_id = (is_user($user)) ? (cookiedecode($user)) : $cookie[0];
但是它不起作用

这样呢:

    if(is_user($user)){ 
        $cookie=cookiedecode($user);
        $this->user_id =intval($cookie[0]);
    }
这样怎么样:

    if(is_user($user)){ 
        $cookie=cookiedecode($user);
        $this->user_id =intval($cookie[0]);
    }

三元运算符应该少用,并且只有当逻辑足够简单以保持可读性时才使用!变得太复杂,那么速记就因为难以理解而超过了它的用处

三元运算符一次只能处理一个变量赋值。这是你的电话号码

如果
is\u user()
返回true,则将用户id分配给
cookiedecode($user)
,否则分配给
$cookie[0]

有鉴于此:


您应该保留现有的代码结构 三元运算符应该少用,并且只有当逻辑足够简单以保持可读性时才使用!变得太复杂,那么速记就因为难以理解而超过了它的用处

三元运算符一次只能处理一个变量赋值。这是你的电话号码

如果
is\u user()
返回true,则将用户id分配给
cookiedecode($user)
,否则分配给
$cookie[0]

有鉴于此:


您应该保留现有的代码结构!!你为什么要用条件表达式重写它?你的意思是,我可以在我的类中定义user_id之前定义我的var!,是的,那是right@Gumbo为了降低可读性:对Mike来说p+1,为了降低可读性:dwy你为什么尝试用条件表达式重写它?你的意思是,我可以在我的类中定义user_id之前定义我的var!,是的,那是right@Gumbo为了降低可读性:p+1对于Mike,为了降低可读性:D但是我的朋友,你给我的例子正是我在问题中使用和展示的,我尝试了那句话,但对我无效,并返回0$this->user_id=(is_user($user))?(cookiedecode($user)):$cookie[0];但是我的朋友,你给我的例子正是我在我的问题中使用和展示的,我尝试了那句话,但对我不起作用,返回0$this->user\u id=(is\u user($user))?(cookiedecode($user)):$cookie[0];
$this->user_id = (is_user($user)) ? (cookiedecode($user)) : $cookie[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.