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を参照してください。

===型 (string、int など) も同じ場合にのみ 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 に答える