Se sì, esiste un modo per accedere a una var definita in un altro tag di snippet di codice PHP?Ogni frammento di codice PHP all'interno del tag <?php> ha il proprio ambito variabile?
risposta
No, non lo fanno. I tag separati <?php ?>
condividono lo stesso ambito variabile. È possibile accedere a qualsiasi variabile dichiarata da qualsiasi ambito:
<?php $foo = 4; ?>
<?php echo $foo; /* will echo 4 */ ?>
L'unica nozione di ambito in PHP esiste per funzioni o metodi. Per utilizzare una variabile globale in una funzione o un metodo, è necessario utilizzare l'array $GLOBALS
o una dichiarazione global $theVariableINeed;
all'interno della propria funzione.
No, per impostazione predefinita tutti i file condividono lo stesso ambito in PHP. L'unico ambito che ottieni è usando classi o funzioni.
Se hai
<php
$a = '111';
?>
e
<php
echo $a
?>
nella stessa pagina, il risultato sarà 111, significato, esso riconosce le variabili del primo frammento di PHP.
Lo scope variabile in PHP non funziona così.
Il punteggio variabile funziona in classi e funzioni. Ad esempio:
<?php $a = 10 ?>
<?php echo $a; ?>
Questo funzionerà.
Tuttavia:
<?php
$a = 10;
function get_a(){
echo $a;
}
?>
Questo non funzionerà. E 'o non mostrando $ un valore o livello AVVISO errore (a seconda della configurazione)
Per ulteriori informazioni, è possibile see this page.
Si può pensare alle parti dello script che NON SONO all'interno di <?php ?>
come equivalenti a un'istruzione echo, tranne senza alcuna interpolazione di variabili, virgolette, ecc. - solo <?php ?>
. Così, per esempio, si può anche fare qualcosa di simile:
<?php if (42) { ?> This will only be output if 42 is true. <?php } ?>
Nota: non sto dicendo che questa è una buona idea da fare, ma illustra bene il mio punto di vista. –
Questa funzione è estremamente utile per il codice generato automaticamente, ma preferirei non leggerlo o scriverlo da solo. – zneak
Così lordo. Ma hey PHP era molto più avanti di JSX: D – Askdesigners
Re: "L'unica nozione scoping in PHP esiste per funzioni o metodi", PHP 5.3 e gli spazi dei nomi tipo di trasformare quel comunicato sul suo orecchio. –