我有这段代码:
<?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
。帮助
答案 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);
?>
希望这会对你有所帮助。