Imprimir variable global dentro de función [Ayuda]

  • Autor Autor mafiabacklinks
  • Fecha de inicio Fecha de inicio
M

mafiabacklinks

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola chicos, que tal...

Estoy aprendiendo PHP, alguien podría explicarme por qué no se puede imprimir la variable global dentro de un ámbito local?

Insertar CODE, HTML o PHP:
<?php

global $msg;
$msg="Mensaje";

function imprimir(){
    echo "Msg: ".$msg;
}

imprimir();
imprimir();

?>
 
Esto no es recomendable.

PHP:
<?php
    
$a = 1;
$b = 2;

function Suma()
{
    global $a, $b;

    $b = $a + $b;
}

Suma();
echo $b;

?>

Tambien incorrecta pero mas acertada
PHP:
<?PHP

foo();
echo $a; // echoes nothing

bar();
echo $b; //echoes "b";

function foo() {
  $a = "a";
  global $a;
}

function bar() {
  global $b;
  $b = "b";
}

?>

Usa static para declarar funciones ambiguas y usa extract globals para extraer variables globales.

PHP:
<?php

function add($a, $b) {
 return $a + $b;
}
$funcName = 'add';
echo $funcName(1, 2); // outputs 3

?>

Debes seguir el patron de unica funcionalidad y variables puras, pasa las variables que requieras cuando llamas a la funciones.

PHP:
<?php
// Forma correcta
$msg = 'Mensaje';

function imprimir(String $text){
    echo $text;
}

imprimir($msg);

// Forma optima

function imprimir(String $text) {
    return $text;
}

$func = 'imprimir';
echo $func('Contenido!');


?>
 
Muchísimas gracias!
 

Temas similares

Atrás
Arriba