我是 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
函数内的变量(仅存在于全局范围内)。
See the 关于变量作用域的 PHP 手册页了解更多信息。
您可以通过添加来解决此问题global $pera;
在你的函数中,尽管这不是一个特别优雅的方法,因为由于过于详细的原因而避免使用全局变量,无法在此处讨论。既然如此,最好接受$pera
作为函数的参数,如下所示:
function provera($prom, $pera){
if (preg_match("/[0-9\,\.\?\>\.<\"\'\:\;\[\]\}\{\/\!\\\@\#\$\%\^\&\*\(\)\-\_\=\+\`[:space:]]/",$prom)){
echo "Nepravilan unos imena ili prezimina!";
echo $pera;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)