2017-03-17 63 views
1

我正在研究一个条件,我不明白,因为其中一个条件默认设置为true,之前没有设置变量,有人告诉我这意味着什么吗?这个条件是什么意思?

$pagina= Pagina::findOrFail($datos->idpagina); 
switch ($datos->tipodato) 
{ 
    case 'logo': 
    if(true) //?? 
    { 
     $datos->logo = urldecode($datos->logo); 
     $datos->logo = str_replace(' ', '+', $datos->logo); 
     $datos->logo = str_replace("data:image/png;base64,","",$datos->logo); 
     $datos->logo = str_replace("data:image/jpg;base64,","",$datos->logo); 
     $datos->logo = str_replace("data:image/jpeg;base64,","",$datos->logo); 
     $pagina->logo =$datos->logo; 
    } 
    else 
    { 
     $pagina->logo =$datos->logo; 
    } 


    $nombreimagen="img".$datos->idpagina.".png"; 
    file_put_contents(public_path()."/imagenes/{$nombreimagen}", 
     base64_decode($datos->logo)); 
    $pagina->archivologo=$nombreimagen; 

    break; 
+2

在'logo'的情况下,if语句被执行,其他的语句永远不会被执行。尽管看起来不寻常/毫无意义的代码 –

回答

2

这意味着if语句中的代码总是被执行并且else-block内的代码永远不会被执行。

一个常见的原因是它曾经是一个基于变量的条件,但程序员已经停用了它,但保留了else语句使其更容易恢复。

2

if (true)手段,即当时的情况下,始终执行,你可以savely删除else情况下(还有条件本身)。大多数情况下,这是插入调试案例或重构,有人忘了删除多余的条件。