php使用变量作为php函数中的实际参数

php使用变量作为php函数中的实际参数,php,function,variables,Php,Function,Variables,下面是我的代码。在我的代码的前半部分中,您将看到变量$question和$row。当我回显$QUEST和/或$row[0]时,我得到返回的值。但是,在代码的底部,我尝试将这些变量用作add_textbox函数中的实际参数。但是,add_textbox函数的作用就像那些变量为null一样。有人能告诉我我做错了什么吗 <?php $dbhost = 'localhost'; $uname = $_POST["uname"]; //***create connection object

下面是我的代码。在我的代码的前半部分中,您将看到变量$question和$row。当我回显$QUEST和/或$row[0]时,我得到返回的值。但是,在代码的底部,我尝试将这些变量用作add_textbox函数中的实际参数。但是,add_textbox函数的作用就像那些变量为null一样。有人能告诉我我做错了什么吗

<?php


$dbhost = 'localhost';

$uname = $_POST["uname"];

//***create connection object
$connection = mysql_connect($dbhost, "bc572482", "dfdfdfs")
    or die (mysql_error());

$dbname = "bc57";
mysql_select_db($dbname)
    or die (mysql_error());

调用
display\u security()
函数时,将
$row[0]
$question
作为函数参数传递

display_security($row[0], $question);
display\u security()
中,使用参数变量
$p
$question

function display_security($p, $question)
{
    myprint("<html><head>");
    add_style();
    myprint("</head><body>");
    myprint("<h3> Feeding our Brothers and Sisters <br> Security Check</h3>");
    // get the security form created
    myprint("<form name=securityForm method=post action=login.php>");
    add_textbox($p,$question);
                ^^^ ^^^^^^^^
    add_submit("Login");
    myprint("</form>");
    myprint("</body></html>");

}
函数显示\u安全($p,$question)
{
myprint(“”);
添加_样式();
myprint(“”);
myprint(“喂养我们的兄弟姐妹
安全检查”); //创建安全表单 myprint(“”); 添加文本框($p,$question); ^^^ ^^^^^^^^ 添加提交(“登录”); myprint(“”); myprint(“”); }
$question
$row
是全局变量。在函数中,
$question
$row
是局部变量,而不是全局变量。您可以调用或输入关键字:


这些变量没有在您调用的函数
display\u security()
中定义
add\u textbox()
我看不出您在任何函数中都将这些变量作为参数传递。非常不鼓励使用
global
;更好的做法是将变量显式地传递到函数的作用域中。是的,杰克,这是真的。这是个坏习惯。。。比如使用mysql而不是mysqli,在PHP文件中嵌入HTML代码。。。类似于在函数中使用多个参数(参见Martin Fowler的重构注释)。这两种解决方案都是不好的做法,但像参数一样传递变量并不像使用全局变量那样糟糕。
function display_security($p, $question)
{
    myprint("<html><head>");
    add_style();
    myprint("</head><body>");
    myprint("<h3> Feeding our Brothers and Sisters <br> Security Check</h3>");
    // get the security form created
    myprint("<form name=securityForm method=post action=login.php>");
    add_textbox($p,$question);
                ^^^ ^^^^^^^^
    add_submit("Login");
    myprint("</form>");
    myprint("</body></html>");

}
$question = 'this is a global variable';
$row = 'this is a global variable too';

function foo() {
    global $row;
    global $question;
    add_textbox($row[0], $question);
}