ホームページ >バックエンド開発 >PHPチュートリアル >この傍受は正しいでしょうか?

この傍受は正しいでしょうか?

WBOY
WBOYオリジナル
2016-06-23 13:32:511088ブラウズ

ソースコードにこれが書かれているのを見ました: 本来の意図はスラッシュを取ることですが、このようにリストされている場合、最後の p を取るのではありませんか? -1 は最後のものを取ることを意味するからです
echo $php_self;/ / /index.php
if ( '/' == substr($php_self, -1)) このように書くのは間違っていませんか? -1 は最後のものを取りません


への返信ディスカッション (解決策)

string substr (string $string, int $start [, int $length ] )

$rest = substr("abcdef", -1) // return "f"
start が負の数の場合、返される文字列は、文字列の末尾から前方の開始文字から始まります。

string substr ( string $string , int $start [, int $length ] )

$rest = substr("abcdef", -1); // return "f"
start が負の数の場合、文字列string の末尾から開始文字から開始します。

あなたの推論に従えば、この文 if ('/' == substr($php_self, -1)) は明らかに間違っていますが、この文の目的は真の値を判断することです。ecshop はこんな感じでしょうか。何が起こっているのでしょうか?

string substr (string $string, int $start [, int $length])
$rest = substr("abcdef", -1) // return "f"
if start負の数の場合、返される文字列は文字列の末尾から前方の開始文字から始まります。

あなたの推論に従えば、この文 if ('/' == substr($php_self, -1)) は明らかに間違っていますが、この文の目的は真の値を判断することです。続けます


彼は、index.php/fasdfasdfasdfaf を取得したいと考えています。これは、index.php の後の部分を取得することを意味します
Index.php の後に /

if ('/' == substr ($ php_self, -1))

$php_self の最後の文字が / であるかどうかを確認してください
関数の使い方を間違って理解していません
しかし、アルゴリズムの目的を明確に理解していません

したがって、他の人のコードでは、作成者の考え方を理解する必要があります。

同じ効果なので、全く同じようなアルゴリズムを使っても良いです

考え方も違うし、書き方も違います

例えば、$php_selfの後に/がないことを願うなら
その場合は $php_self = trim と書きます($php_self, '/');
チューブを持っているかどうかに関係なく、後で削除しましょう

もう 1 つの例は、$php_self の後に /
が続くことを望む場合、$php_self = Trim($php_self, '/') . '/'



if ('/' == substr($php_self, -1)) を操作する前に最初に判断する必要はありません。これは、最後の文字が /


であるかどうかを確認するためです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。