LBRY Block Explorer

LBRY Claims • aula5

8b14a151095fa0e52f0ba7366f85a92067ddb1f1

Published By
Created On
5 Jul 2021 02:42:30 UTC
Transaction ID
Cost
Safe for Work
Free
Yes
[PHP - aula 5] - @debxp ensina PHP para @vlad - Escopo de Variáveis
# Aula 4: Variáveis e tipos de dados

## 6 - Escopo de variáveis

O "escopo" é o limite da disponibilidade de uma
variável no nosso código.

De modo geral, todas as variáveis no PHP têm escopo
global, menos nas funções definidas pelo usuário.

+ Observe o exemplo:

: php > $a=1; $b=2;
: php > function soma() { return $a + $b; }
: php > echo soma();
: PHP Notice: Undefined variable: a in php shell code on line 1
: PHP Notice: Undefined variable: b in php shell code on line 1
: 0

Aqui, as variáveis '$a' e '$b' são globais para toda
a sessão, mas não são vistas pela função 'soma()'.

+ NOTA: o construtor de linguagem 'return' faz com que
+ a função encerre sua execução retonando algum valor.

---

Para que a função enxergue as variáveis fora de seu
escopo global, nós podemos declará-las na função com
a palavra chave 'global':


: php > $a=1; $b=2;
: php > function soma2() { global $a, $b; return $a + $b; }
: php > echo soma2();
: 3

Outra forma seria com a array associativa interna
do PHP: '$GLOBALS':

: php > $a=10; $b=6;
: php > function menos() { return $GLOBALS['a'] - $GLOBALS['b']; }
: php > echo menos();
: 4

+ A palavra reservada 'global' faz uma referência
+ às variáveis fora do escopo local da funçã

---

Ainda sobre o escopo local das funções,
observe o exemplo:


: php > function contador() { $a = 0; echo $a; $a++; }
: php > contador();
: 0
: php > contador();
: 0
: php > contador();
: 0
: ...


O problema aqui é que o valor de '$a' volta a ser '0'
cada vez que a função é chamada, e o nosso contador
não consegue fazer o incremento.

Para resolver isso, nós podemos declarar '$a' como uma
'variável estática'.

---


Author
Content Type
Unspecified
video/mp4
Language
Open in LBRY

More from the publisher

100,000,000.00 LBC
Controlling
VIDEO
NSFW
VLAD'
100,000,000.00 LBC
TESTE
10,000,000.00 LBC
DUCK
Controlling
VIDEO
FIAT
Controlling
FUTUR
TEST
Controlling
VIDEO
[PHP
TESTE
Controlling
ODYSE