0

5つの引数とデフォルトのサイト幅変数を持つ関数があります

$site_width ='1000px';
function MyPrintFunction ($divName,$width=false,$html1='',$html2='', $echo = true ){
      ... plenty of code above, no need to post complete function

        $html = '<div id="'.$divName.'">';
        $html .= '</div>';
        if( $echo ){
          echo $html1.$html.$html2;
        }else{
          return $html1.$html.$html2;
        }


}

そして、次のようにhtmlを印刷するよりも:

MyPrintFunction ('divname1',true);
MyPrintFunction ('divname2');
MyPrintFunction ('divname3');

これらの関数のいずれかが 2 番目の引数を true に設定しているかどうかを確認する必要があります。そうであれば、最初の引数名が必要です。

このようにして、引数名をcssスニペットに追加し(後でヘッドに挿入されます)、幅を設定できます

#ARrument1NameSHouldGoHereAsVariable{
   width:$site_width;
}

私はこれを正しく説明したことを願っています。私がしなかった場合は申し訳ありません。どんな助けでも大歓迎です。ありがとうございました!

4

2 に答える 2

1

いいえ、いいえ、あなたは絶対にオプションの引数を持つことができます。状況は少し厄介ですが、完全に可能です。

echo MyPrintFunction('dafsd',435);
function MyPrintFunction ($divName,$width=2342){
    return $divName . $width;
}

推奨されない理由は...高さを設定したいが、幅を435に設定したくないとしましょう。

echo MyPrintFunction('dafsd',435);
function MyPrintFunction ($divName,$width=2222, $height=1111){
    return $divName . $width . $height;
}

通常、オプションの引数は使用しないでください。また、引数を配列の最後に配置する場合は、

ああ、これをあなたが探しているものにしてください...

function MyPrintFunction ($divName,$width=false){
    $newObj = array();
    $newObj['divName'] = $divName;
    $newObj['width'] = $width;
    return $newObj;
}
function hasWidth($newObj) {
    if ($newObj['width']) {
        return $newObj['width'];
    }
    else {
        return 'no width!'; 
    }
}
$tempStore1 = MyPrintFunction('dafsd',123);
$tempStore2 = MyPrintFunction('dafsd');
echo hasWidth($tempStore1);
echo hasWidth($tempStore2);
于 2012-11-10T04:36:58.487 に答える
1

これは何のためですか?

function MyPrintFunction ($divName,$width=false,$html1='',$html2='', $echo = true ){

ロジックは次のようになります

<?php
function blahblah($param1, $param2) {
//Put some weirdy stuff here

if($param2 == '1') {
 //Than it's true
  } else {
 //false
  }
}
blahblah("div1", "1"); //This is true
blahblah("div1", "0"); //This is false
?>
于 2012-11-10T04:01:59.430 に答える