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 时,该函数正在运行,因此它会打印“Print some new code”;在那里。

为了在 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

使用函数时应该记住两件事。

1-首先定义它

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

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 回答