0

以下代码来自 Symfony 2,输入字符串 'folder/file.exe',将输出 'file.exe'。

protected function getName($name)
{
    $originalName = str_replace('\\', '/', $name);
    $pos = strrpos($originalName, '/');
    $originalName = false === $pos ? $originalName : substr($originalName, $pos + 1);

    return $originalName;
}

但是,我可以理解除以下代码结构之外的所有内容:

    $var = false === 'something';

谁能给我解释一下?谢谢!

编辑:谢谢大家帮助我,也许下面的代码比上面的代码更清楚:

    $originalName = ((false === $pos) ? $originalName : substr($originalName, $pos + 1));
4

3 回答 3

1

它是 if else 条件的简写形式

if($a == 1) {
    $value = 1;  
} else {
    $value = 2;
}

同样的事情是

$value = $a==1 ? 1 : 2;
于 2013-09-07T14:04:00.440 回答
1

http://www.php.net/manual/en/language.operators.comparison.php

===仅当类型(字符串、整数等)也相同时才返回 true

于 2013-09-07T14:04:01.037 回答
1
$originalName = false === $pos ? $originalName : substr($originalName, $pos + 1);

扩展上述过程:

if($pos === false) {
   $originalName = $originalName;
} else {
   $originalName = substr($originalName, $pos + 1);
}

或者

if($pos !== false) {
   $originalName = substr($originalName, $pos + 1);
}
于 2013-09-07T14:04:29.193 回答