[PHP] Scopo di una variabile

anvalon

Nuovo Utente
4 Nov 2018
6
0
1
Ciao a tutti,

non riesco a comprendere il seguente comportamento di PHP. Nel file "index.php" dichiaro una variabile $page a cui assegno il valore 'home' e includo poi il file "layout.php" che utilizza tale variabile che è visibile:

PHP:
// File index.php
$page = 'home';
require 'layout.php';

// File layout.php
require $page . '.php';

Se però nel file "index.php", invece di scrivere "require layout.php", dichiaro un oggetto di classe "View" di cui richiamo il metodo "show()" in cui c'è il comando "require layout.php", nel file "layout.php" la variabile $page non è visibile. Perché?

PHP:
// File index.php
$page = 'home';
$view = new View($page);
$view->show();

// File view.php
class View {
    ...
    public show() {
        require 'layout.php';
    }
}

// File layout.php
require $page . '.php';

Grazie
 

marino51

Utente Attivo
28 Feb 2013
2.918
164
63
Lombardia
dal manuale indicato,

Here the $a variable will be available within the included b.inc script. However, within user-defined functions a local function scope is introduced. Any variable used inside a function is by default limited to the local function scope.

metodo é di fatto una funzione e come tale si comporta