phpで携帯サイトを作成しています。
php超初心者です。
現在、phpにて携帯サイトを作成しています。
サンプルコードなどが記載されている本を購入し、
それを解読しながら、自分なりに修正を加え作成しています。
その中で、どうしても理解できない所があり困っています。
どなたか教えて下さい。
サンプルコード
function mobileFinish($convertFunc=null, $funcParams=array())
{
// 文字コード変換&バッファ出力
$content = ob_get_contents();
ob_end_clean();
$content = mb_convert_encoding($content, 'sjis-win', 'utf-8');
// 変換処理
if ($convertFunc) {
$content = call_user_func_array($convertFunc,
array_merge(array($content), $funcParams));
}
echo $content;
まず function 関数名 (引数1,引数2){ 処理方法 }は
引数1,引数2を使って{ }の中の処理をせよ ということだと思うので、
”$convertFunc=null”と”$funcParams=array()”を使って{ }の中の処理をせよになり、
{ }の中の処理というのが、
$content = ob_get_contents();
ob_end_clean();
$content = mb_convert_encoding($content, 'sjis-win', 'utf-8');
つまり、このコード以前に記述されている出力用バッファの内容を取得して、
バッファをクリアして、
文字コードを”utf-8”から”sjis-win”に変換したものを”$content”に格納する。
ここからが理解できないのです。
if ($convertFunc) {
$content = call_user_func_array($convertFunc,
array_merge(array($content), $funcParams));
}
まず if (条件式) { 処理方法 }は、
条件式が「正」の時{ }の中の処処を行え ということだと思うので、
”$convertFunc=null”つまり”$convertFuncに値が無い時”に{ }の中の処処を行えになり、
call_user_func_array(”呼び出す関数名”,”関数に渡すパラメータがセットされた配列”)は
”呼び出す関数名”は”$convertFunc=null”なんのこっちゃ?
”関数に渡すパラメータがセットされた配列”も”$content”に格納された内容と
”$funcParams=array()”を”array_merge()”で合体させる・・・
”$funcParams=array()”には何の値が入っているんだ?
”$convertFunc=null”と”$funcParams=array()”のおかげでチンプンカンプンです。
どなたかPHP訳してください。宜しくお願いします。
お礼
yambejpさんコメントありがとうございます。 一文ならOKなんですね。 分かりやすい回答ありがとうございます。