gpt4 book ai didi

php - PHP函数的 undefined variable 问题

转载 作者:可可西里 更新时间:2023-10-31 23:52:47 25 4
gpt4 key购买 nike

我是一个 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 manual page on variable scope获取更多信息。

您可以通过在您的函数中添加 global $pera; 来解决此问题,尽管这不是一种特别优雅的方法,因为由于过于详细的原因而避免了全局变量,因此无法在此处进行介绍。因此,最好接受 $pera 作为函数的参数,如下所示:

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

关于php - PHP函数的 undefined variable 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6058781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com