I'm a PHP newbie, so I have a minor problem functions. I have this line of code:
<?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);
?>
Anyway, when I try this code I always get an error message saying that there's a error on on line 11 (the bold part of the code) and no variable is echoed. I'm guessing that it gives me that error because my variable isn't defined inside of that function, but I need to define it outside of the function so is there a way to do this?
This is because you're using the
$pera
variable (which exists only in the global scope) inside a function.See the PHP manual page on variable scope for more information.
You could fix this by adding
global $pera;
within your function, although this isn't a particularly elegant approach, as global variables are shunned for reasons too detailed to go into here. As such, it would be better to accept$pera
as an argument to your function as follows:In your function function provera($prom) add a line that says
You can't use
$pera
inside the method like that because it's not defined inside the method scope.If you want to use the method, pass it as a parameter.
It sounds like you have nothing set in your $pera variable. If you have to define a variable outside a function, try passing its value as argument to your function.