在PHP中打印变量不起作用

时间:2011-05-13 11:53:55

标签: php

我有这段代码:

<?php
  $userid = $me['id'];
  function showifuserexists() {
?>
<html>
  <head></head>
<body>
  <a href="file.php?element1=aaa&userid=<?php print $userid; ?>">
</body>
</html>
<?php
} 
?>

出于某种原因,我无法让php $userid显示在html链接中。我也试过了echo。帮助

4 个答案:

答案 0 :(得分:4)

您应该阅读variable scope

您的函数中的

$userid与函数外的$userid不同 - 它具有不同的scope。你可以将变量设为全局变量,但这并不是一个很好的实践,特别是在这种情况下。

我不确定你想要达到的目标;但我想..

function showifuserexists($userid=null) {
    echo '<a href="file.php?element1=aaa&userid=' . $userid . '"> ... </a>';
    // functions should *generally* return output, but for examples sake
}

然后你会这样做:

showifuserexists($me['id']);
例如,

。但是你的要求并不那么明确。

答案 1 :(得分:2)

对于像这样的简单行为,不使用内联创建的函数时,你最有可能好多了。只需使用简单的 if-statement

<?php
    $userid = $me['id'];
    if (null !== $userid) {
?>
<html>
  <head></head>
<body>
  <a href="file.php?element1=aaa&userid=<?php print $userid; ?>">
</body>
</html>
<?php
    }
?>

旁注:原始帖子中的问题是 - 就像许多其他人已经解释的那样 - $userid在函数范围之外定义,使其在此函数范围内不可用。

答案 2 :(得分:1)

$userid中不存在

showifuserexists()。使用global告诉函数该变量是在外面找到的。

答案 3 :(得分:1)

你无法在函数内部加入变量$ userid。您可以通过将变量作为函数参数传递来获取值。

示例代码:

<?php
  $userid = 1;
  function showifuserexists($userid) {
?>
  <html>
  <head></head>
  <body>
      <a href="file.php?element1=aaa&userid=<?php echo $userid?>" >
  </body>
  </html>
<?php
}
showifuserexists($userid);
?>

希望这会对你有所帮助。