1

call_user_func を使用して、配置された特定の関数に要素/オブジェクトを作成する PHP のものがあります。

functions.php ファイルの例:



    function head($args=null){

       echo $args;

    }

    function footer($args=null){

       echo $args;

    }

    function createHeadTexts(){

       echo 'This is header area';

    }

    function createFooterTexts(){

       echo 'This is footer area';

    }

    //function to call this elements
    function addParam($arg, $val){

       call_user_func($arg, call_user_func($val));

    }

index.php ファイルの例:



    head()

    This is contents area...

    footer()

functions.php ファイルに戻り、次の関数への呼び出しを追加しました。



addParam('head','createHeadTexts')//which is I thought has to be added on a header area.
addParam('footer','createHeadTexts')//which is I thought has to be added on a footer area too.

しかし、PHP ページを表示しようとしたときに問題が発生しました。

次のようになります。


This is header area This is footer area 
This is contents area...

テキストは次のように表示されるはずだと思いました:



This is header area 
This is contents area...
This is footer area

index.php ファイルに配置する関数は、head() と footer() だけです。head() は Web コンテンツの前に表示し、footer() はコンテンツの後に表示する必要があります。

head() に要素/オブジェクト/スクリプトを作成したい場合は、 addParam('head','要素/オブジェクト/スクリプトを作成する関数'); にする必要があります。

これを修正する方法を教えてください。または、call_user_func 以外に使用する方法はありますか?

ありがとう、

4

1 に答える 1

0

私はこれをテストしたところ、問題なく出てきました。

<?php

function head($args=null){
    echo $args;
}

function footer($args=null){
    echo $args;
}

function createHeadTexts(){
    echo 'This is header area';
}

function createFooterTexts(){
    echo 'This is footer area';
}

// function to call this elements
function addParam($arg, $val){
    call_user_func($arg, call_user_func($val));
}

addParam('head','createHeadTexts');
echo '<br />This is contents area...<br />';
addParam('footer','createFooterTexts');

?>

そして出力:

This is header area
This is contents area...
This is footer area

多分あなたはいくつかの議論を変えるのを忘れましたか?私が変えたのは

addParam('footer'、'createHeadTexts')to addParam('footer'、'create FOOTER Texts')

于 2012-07-03T07:37:46.433 に答える