加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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;
        }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读