2017-09-23 10 views
0

が実行されますか? $ system_pathが無効な場合、原因として、else文に移動します。しかし、この場合、else文は意味がないようです。else文はcodeigniter index.php行で何を意味しますか?次のelse文を実行すると、196

https://github.com/bcit-ci/CodeIgniter/blob/develop/index.phpライン196

if (($_temp = realpath($system_path)) !== FALSE) 
{ 
    $system_path = $_temp.DIRECTORY_SEPARATOR; 
} 
else 
{ 
    // Ensure there's a trailing slash 
    $system_path = strtr(
     rtrim($system_path, '/\\'), 
     '/\\', 
     DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR 
    ).DIRECTORY_SEPARATOR; 
} 

答えて

0

そのif/elseブロックのポイントは、以下ifブロックで使用するためのセンスのいずれかの種類を作る文字列を構築することです。そのブロックは解決できない書かれたとして、その後$system_path FALSE

if(! is_dir($system_path)) 

realpath()もしリターンで始まります。しかし、かもしれないは、パスが存在しないことを意味しません。おそらく、開発者は 'realpath()'が理解できないことを知っています。 else部分は、開発者に疑念の恩恵を与えます。提供された値は$system_pathで、フォーマットはis_dir($system_path)です。

私の頭の上では、realpath()が失敗する例は考えられませんが、$system_pathが存在します。しかし、開発者は創造的な束です。

+0

はい、私はこれを知っています。しかし、$ system_pathが存在しない場合は、私が言ったように。 else文は意味がないようです。私は、このelseブロックコードには他にも意味があるはずだと思います。 –

+0

私は私の答えを改訂しました。助けてくれますか? – DFriend

+0

あなたのインスピレーションに感謝します。 '$ system_path ="。\\ some_path \\ system "'のように、 '$ system_path'がWindowsスタイルで書かれていると、それはWindows環境でしか動作していないことがわかります。 elseステートメントコード '$ system_path = strtr( rtrim($ system_path、 '/ \\')、 '/ \\'、 DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR ).DIRECTORY_SEPARATOR;はプラットフォームの問題を解決するためのものです。 –

関連する問題