我想使用一个函数来回显一个名为“name”的值。该值通过POST方法从表单发送到函数。
我的HTML:
<html>
<head>
<title> function play </title>
</head>
<body>
<form method="post" action="function.php">
Name: <input type="text" name="name"/>
<input type="submit" name="submit" value="submit"/>
</form>
</body>
</html>
我的PHP:
<?php
$name= $_POST['name'];
function writeName($name)
{
echo $name;
}
writeName();
?>
出于某种原因,我不断收到错误:
警告:缺少writeName()的参数1,在第7行的C:\ xampp \ htdocs \ function.php中调用,在第3行的C:\ xampp \ htdocs \ function.php中定义
注意:未定义的变量:第5行的C:\ xampp \ htdocs \ function.php中的名称
我做错了什么?
答案 0 :(得分:2)
您需要将参数传递给函数。
writeName($name);
答案 1 :(得分:2)
正如其他人所说,当你调用函数时,你需要将你的值作为参数传递。
PHP中的变量是"scoped"。这意味着无论您在何处定义变量都会影响其上下文。在您的示例中,脚本级别定义的$ name与定义为函数参数的$ name不同。但是,函数中使用的$ name将始终引用该函数中的相同变量 。
要将其付诸实践,请考虑以下事项:
$name = 'a';
function writeName( $name )
{
echo $name; // echoes 'b'
}
writeName( 'b' );
echo $name; //echoes 'a'
考虑它的另一种方法是只更改变量的名称,使它们明显不同:
$getName= $_POST[ 'name' ];
function writeName( $nameToWrite )
{
echo $nameToWrite;
}
writeName( $getName );
您还可以使用函数内的global
关键字让PHP知道您在全局范围内(即在脚本级别,在函数外部)引用变量,但这通常是糟糕的做法。
$getName = $_POST[ 'name' ];
function writeName() // Notice that we don't need to pass $getName as an argument
{
global $getName;
echo $getName;
}
writeName();
答案 2 :(得分:1)
您将函数定义为function writeName($name)
,这意味着它期待参数。但是当你调用函数时,你不会传递参数。尝试更改
writeName();
为:
writeName($name);
答案 3 :(得分:0)
您必须将参数传递给函数writeName($name);
或您可以为函数参数设置默认值:
function writeName($name = null)
{
echo $name;
}
答案 4 :(得分:0)
您没有将参数传递给函数。试试这个:
<?php
function writeName($name)
{
echo $name;
}
writeName($_POST['name']);
?>
答案 5 :(得分:0)
原因是:您将writeName
函数声明为期望名为$name
的参数。但是当你调用函数时,你没有传递任何参数。你应该使用这样的函数:
writeName("some string here");
答案 6 :(得分:0)
您已经定义了'writeName'函数来接受一个参数。调用该函数时,您必须提供此参数。
writeName($name);
或
writeName($_POST['name']);