PHP函数的未定义变量问题

我是PHP的新手,所以我的功能有一个小问题。我有这行代码:

<?php

$ime=$_POST["ime"];

$prezime=$_POST["prezime"];

$pera="string";

if (empty($ime)||empty($prezime)){

echo "Ne radi, vrati se nazad i unesi nesto!";

}

function provera($prom){

if (preg_match("/[0-9\,\.\?\>\.<\"\'\:\;\[\]\}\{\/\!\\\@\#\$\%\^\&\*\(\)\-\_\=\+\`[:space:]]/",$prom)){

echo "Nepravilan unos imena ili prezimina!";

echo $pera;

}

}

provera($ime);

provera($prezime);

?>

无论如何,当我尝试这段代码时,我总是收到一条错误消息,指出第11行(代码的粗体部分)有错误,并且没有回显任何变量。我猜它给了我这个错误,因为我的变量没有在函数内部定义,但是我需要在函数外部定义它,所以有办法吗?

回答:

这是因为您正在$pera函数内部使用变量(仅存在于全局范围内)。

有关更多信息,请参见PHP手册页上的变量范围。

您可以通过global

$pera;在函数中添加来解决此问题,尽管这并不是一种特别优雅的方法,因为由于过于详细的原因而忽略了全局变量,因此此处不再赘述。因此,最好接受$pera如下所示的函数参数:

function provera($prom, $pera){

if (preg_match("/[0-9\,\.\?\>\.<\"\'\:\;\[\]\}\{\/\!\\\@\#\$\%\^\&\*\(\)\-\_\=\+\`[:space:]]/",$prom)){

echo "Nepravilan unos imena ili prezimina!";

echo $pera;

}

}

以上是 PHP函数的未定义变量问题 的全部内容, 来源链接: utcz.com/qa/408178.html

回到顶部