1

次のようなPHPコードがあります。

<?php
  if($condition) {myFunction();};
?>
<html>
  <head>
  </head>
<body>
Some HTML code
<?php
  function myFunction() {
     print "Print some new code";  
  };
?>
</body>
</html>

myFunction が呼び出されると、新しいコードが最初の html タグの前に出力されます。
たとえば、「HTMLコード」の後にその動作を変更して印刷するにはどうすればよいですか。
ありがとう!

4

3 に答える 3

3

そこで定義するのではなく、印刷したい場所で関数を呼び出す必要があります。

<?php
  function myFunction() {
     print "Print some new code";  
  };
?>
<html>
  <head>
  </head>
<body>
Some HTML code
<?php
  if($condition) {myFunction();};
?>
</body>
</html>

--編集-- コメント用

両方の場所で条件を確認するか、ロジックとコンテンツを分離してください

<?php
  function myFunction() {
     return "Print some new code";  
  }
  $somecontent = '';
  $morecontent = '';
  if($condition) {
      $somecontent = myFunction();
  }
  else{
      $morecontent = 'some more content';
  }
?>
<html>
  <head>
  </head>
<body>
<?php
    echo $morecontent;
?>
Some HTML code
<?php
    echo $somecontent;
?>
</body>
</html>
于 2012-11-12T01:14:31.783 に答える
2

ステートメントが true を返したときに関数が実行されているため、「新しいコードを印刷してください」と出力されます。すぐそこに。

body タグ内に新しいコードを取得するには、そこに if ステートメントを含めます。

同様に、(以下のように) レンダリングされた HTML の外に関数を移動すると、マークアップがロジックから分離されたままになります。

<?php
function myFunction() {
  print "Print some new code";  
};
?>
<html>
  <head>
  </head>
  <body>
    Some HTML code
    <?php
      if($condition) {myFunction();};
    ?>
  </body>
</html>
于 2012-11-12T01:16:46.150 に答える
1

関数を操作する際に覚えておくべき 2 つのこと。

1- 最初に定義する

<?php
    function function_name () {
       // do something
    }

2- 2 番目に呼び出す

function_name();

また、関数は、定義した場所ではなく、呼び出す場所にあるものは何でも返すことを忘れないでください。したがって、あなたの場合、ゲームを反転したため、結果は反転します。

救済策は次のとおりです。

<?php
  function myFunction() {
    return "Print some new code";  
};
?>
<html>
  <head>
  </head>
<body>
Some HTML code
<?php

if ($condition) {
    echo myFunction();
}

</body>
</html>
于 2012-11-12T01:23:42.083 に答える