Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 缺少函数参数错误_Php_Function_Post - Fatal编程技术网

Php 缺少函数参数错误

Php 缺少函数参数错误,php,function,post,Php,Function,Post,我想使用一个函数来回显我命名为“name”的值。该值通过POST方法从表单发送到函数 我的HTML: <html> <head> <title> function play </title> </head> <body> <form method="post" action="function.php"> Name: <input type="text" name="name"/> <input

我想使用一个函数来回显我命名为“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中的名称


我做错了什么?

您需要向函数传递一个参数

writeName($name);

您需要向函数传递一个参数

writeName($name);

必须将参数传递给函数
writeName($name)

您可以为函数参数设置默认值:

function writeName($name = null)
{
   echo $name;
}

必须将参数传递给函数
writeName($name)

您可以为函数参数设置默认值:

function writeName($name = null)
{
   echo $name;
}

您将函数定义为
函数writeName($name)
,这意味着它需要一个参数。但是当你调用函数时,你不会传递参数。试着改变

writeName();
致:


您将函数定义为
函数writeName($name)
,这意味着它需要一个参数。但是当你调用函数时,你不会传递参数。试着改变

writeName();
致:


您没有将参数传递给函数。试试这个:

<?php
function writeName($name)
{
echo $name;
}
writeName($_POST['name']);
?>

您没有将参数传递给函数。试试这个:

<?php
function writeName($name)
{
echo $name;
}
writeName($_POST['name']);
?>

原因是:您将
writeName
函数声明为需要一个名为
$name
的参数。但是当您调用该函数时,您没有传递任何参数。您应该像这样使用函数:

writeName("some string here");

原因是:您将
writeName
函数声明为需要一个名为
$name
的参数。但是当您调用该函数时,您没有传递任何参数。您应该像这样使用函数:

writeName("some string here");

您已将“writeName”函数定义为接受一个参数。调用函数时,必须提供此参数

writeName($name);


您已将“writeName”函数定义为接受一个参数。调用函数时,必须提供此参数

writeName($name);


正如其他人所说,调用函数时需要将值作为参数传递

writeName($name);
PHP中的变量是。这意味着,无论您在哪里定义变量,都会影响其上下文。在您的示例中,在脚本级别定义的$name与作为函数参数定义的$name不同。但是,函数中使用的$name将始终引用该函数中的同一变量

writeName($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();

正如其他人所说,调用函数时需要将值作为参数传递

writeName($name);
PHP中的变量是。这意味着,无论您在哪里定义变量,都会影响其上下文。在您的示例中,在脚本级别定义的$name与作为函数参数定义的$name不同。但是,函数中使用的$name将始终引用该函数中的同一变量

writeName($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();

或者在OP的情况下,
writeName($name)
或在OP的情况下,
writeName($name)