Siempre recuerda, mostrar el error así evitas a los demás tener que ejecutar el código para conocer el error...
El error se debe a que dentro del ámbito de una función
en PHP, todas las variables son locales a menos que se declare que son variables globales.
Ejemplo:
<?php
$hola = "Hola mundo";
function checkName($nombre) {
echo $hola;//Error ya que la variable $hola no esta definida en la función checkname
}
checkName("XD");
?>
Tendrás que declarar que las variables son globales antes de utilizarla. Con el keyword global
<?php
$hola = "Hola mundo";
function checkName($nombre) {
global $hola;//La variable $hola es una variable que pertenece al un contexto global no a un contexto local
echo $hola;// Salida: Hola mundo
}
checkName("XD");
?>
Igualmente tienes que tener cuidado con las variables que declaras dentro de algún bloque, ya sea if,while, etc... Porque la variable que declares dentro de ese bloque solo se podrá acceder desde el mismo bloque, y
fuera solo si el bloque llega a ejecutarse, de lo contrario no.<?php
$hola = "Hola mundo";
function checkName($nombre) {
if(true) {$xD = 888;}
echo $xD;//Salida: 888
}
checkName("XD");
?>
<?php
$hola = "Hola mundo";
function checkName($nombre) {
if(false) {$xD = 888;}
echo $xD;//Error: Undefined variable: xD....
}
checkName("XD");
?>
Variable ScopeSaludos.