PHP函数的未定义变量问题
发布时间:2020-12-13 22:14:17 所属栏目: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_m
我是一个
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. 你可以通过添加全球$pera来解决这个问题.在你的功能中,尽管这不是一种特别优雅的方法,因为全局变量因为太详细的原因而被避开.因此,最好接受$pera作为函数的参数,如下所示: function provera($prom,$pera){ if (preg_match("/[0-9,$prom)){ echo "Nepravilan unos imena ili prezimina!"; echo $pera; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |