ホームページ  >  記事  >  バックエンド開発  >  このコードをどう理解するか

このコードをどう理解するか

WBOY
WBOYオリジナル
2016-06-20 12:34:27948ブラウズ

public static function read($file){
str_replace(',',',',$file);
$tmp =explode(',',$file);
foreach ( $tmp as $v){
$tmp_file = BASE_PATH.'/ language/'.LANG_TYPE.DS.$v.'.php';
if (file_exists($tmp_file)){
require( $tmp_file);
if (!empty($lang) && is_array($lang)){
self::$ language_content = array_merge(self::$lang_content,$lang); > unset($lang);
}
}
return true;
}
上記のコードにこの文を書きます str_replace(',',',',$file);効果が感じられないのですが、何を防ぐのですか?

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

こちらは str_replace の置換結果が $file にコピーされていないため冗長な文です

この文は中国語のカンマを英語のカンマに置き換える文ですが、このように直接書くことはできません。 $file

public static function read($file){

$file = str_replace(',',',',$file); //中国語のカンマを英語に置き換えます
$tmp =explode(' ,',$file) ;//名前を英語のカンマで配列に分割
foreach ($tmp as $v){//配列をループ
$tmp_file = BASE_PATH.'/ language/'.LANG_TYPE .DS.$v.'.php';//配列のキー値に従ってファイルを検索
if (file_exists($tmp_file)){//ファイルが存在する場合
require($tmp_file) ;//ファイルを返します
if (!empty( $lang) && is_array($lang)){//$lang が空ではなく配列の場合
self::$lang_content = array_merge(self: :$ language_content,$lang);
}
unset($lang);// $lang を削除
}
}
return true;// true を返す
}

全角の「,」を「,」に置き換えてください。 タグを使用する際、複数のタグを区切ることができるかどうかをユーザーに確認するためだと思いますが、ユーザーによっては入力時に全角で入力する場合があるため、全角に置き換えてください。

この文は中国語のカンマを英語のカンマに置き換えるものですが、このように直接書くことはできません。 $file

public static function read($file){ に代入する必要があります。

$file = str_replace (',',',',$file); //中国語のカンマを英語に変更します
$tmp =explode(',',$file);//名前を分割します英語のカンマを使用した配列
foreach ($tmp as $v){//ループ配列
$tmp_file = BASE_PATH.'/ language/'.LANG_TYPE.DS.$v.'.php';//Find配列のキー値に従ってファイル
if (file_exists($tmp_file)){//ファイルが存在する場合
require($tmp_file);//ファイルを返す
if (!empty($ lang) && is_array($lang)){//$lang が空ではなく配列の場合
self::$ language_content = array_merge(self::$ language_content,$lang)
}
unset($lang);//Delete $lang
}
}
return true;//return true
}

さらなる質問として、このメソッドの最終結果はreturn true;

私の質問は、この関数には何の意味があるのか​​ということです。なぜなら、この関数は結局は true を返しますが、それは無意味だからです。

以下のステートメント? 条件が満たされると、クラスの静的変数 $ language_content が次々とマージされます。 if (!empty($lang) && is_array($lang)){

self::$ language_content = array_merge(self::$ language_content,$lang)
}

return true は、どの条件も満たされない場合の単なる戻り値です。

次のような記述はありませんか? 条件が満たされると、クラスの静的変数 $ language_content が次々とマージされます。

if (!empty($lang) && is_array($lang)){

self::$ language_content = array_merge(self::$ language_content,$lang)
}

return true は、どの条件も満たされない場合の単なる戻り値です。

条件を満たした場合の戻り値のはずです


あ、言い間違えました。 return true は、if が入力されているかどうかに関係なく実行されます。実際、ここでの return true は、赤でマークしたセクションだけを確認する必要があります。

重要な点は require($tmp_file)

バッチ ローダー ファイル

;

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