Rumah pembangunan bahagian belakang tutorial php 浅谈PHP变量作用域以及地址引用问题_PHP

浅谈PHP变量作用域以及地址引用问题_PHP

Jun 01, 2016 am 11:58 AM
skop berubah-ubah

作用域的概念:

在PHP脚本的任何位置都可以声明变量,但是,声明变量的位置会大大影响访问变量的范围。这个可以访问的范围称为作用域。

主要的常用的包括:局部变量、全局变量、静态变量。

1、局部变量:就是在函数内声明的变量,他保存在内存的栈内,所以访问速度很快。仅在函数内有效。

2、全局变量:与局部变量相反,全局变量可以在程序的任何地方访问。只要在变量前面加关键字GLOBAL,就可以将其识别为全局变量。在整个php文件内有效。

3、静态变量:用static修饰只存在于函数作用域的变量,函数执行结束后其值并不消失。注:初始化后不能再次进行初始化,不能用表达式来赋值。

复制代码 代码如下:
function test()
{
static $b=0;//申明静态变量,放在函数外部声明的话,在函数内部是用不到的

$b=$b+1;

echo $b;
}
test();//这条语句会输出 $b的值 为1
test();//这条语句会输出 $b的值 为2

注:static $b=0 这一赋值操作只会在变量第一次被初始化的时候执行。

附A:类中静态成员和静态方法,差不多只是调用的时候统一使用类名或者self或者parent加::xxx,他们的作用域和这个一样,但是他的声明是在方法外部的

附B:js里面的作用域使:用var aa=‘xxx';在函数外面声明的就是全局变量(不管是否带有修饰符var)。在函数内部使用 var声明的是局部变量,不使用var修饰的是全局变量。

附C:关于引用

PHP引用:就是在变量、函数或者对象前加&.php中的引用就是想用不同的名字访问同一个变量的内容。

1、变量的引用:

复制代码 代码如下:
$a="ABC";

$b =&$a;

echo $a;//这里输出:ABC

echo $b;//这里输出:ABC

$b="EFG";

echo $a;//这里$a的值变为EFG 所以输出EFG

echo $b;//这里输出EFG

2、函数的传址调用

复制代码 代码如下:
function test(&$a)

{

$a=$a+100;

}

$b=1;

echo $b;//输出1

test($b); //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了

echo "
";

echo $b;//输出101

3、函数的引用返回

复制代码 代码如下:
function &test()
{

static $b=0;//申明一个静态变量

$b=$b+1;

echo $b;

return $b;

}

$a=test();//这条语句会输出 $b的值 为1

$a=5;

$a=test();//这条语句会输出 $b的值 为2

$a=&test();//这条语句会输出 $b的值 为3

$a=5;

$a=test();//这条语句会输出 $b的值 为6

解析:使用$a=test()得到的其实不是函数的引用返回。只是将函数的返回值复制给$a,而不会影响到$b。这样调用和普通的调用没区别。

Php规定:$a=&test()方式得到才是函数的引用返回。他将$b变量的内存地址和$a变量的内存地址指向了同一个地方。即相当于$a=&$b;

4、取消引用

复制代码 代码如下:
$a = 1;

$b =& $a;

unset ($a);

echo $b;

解析:unset一个引用,只是取消了变量名和变量的内容之间的绑定,并不意味着内容被销毁,其值还是真实存在的。

5、global引用:使用global $var  声明一个变量时,其实就是建立了一个到全局变量的引用。Global $val $var=&$GLOBALS[‘var'] ;

6、对象的引用:在对象的方法中,$this调用的对象都是调用它的引用

注:php中对于地址的指向不是由用户自己来实现的,而是通过zend核心实现的,php的引用采用的是“写拷贝”的原理,就是除非发生写操作,指向同一个地址的变量或对象是不会被拷贝的。

复制代码 代码如下:
$a = 1;

$b =$a;

$a和$b都是指向同一个内存地址,并不是$a和$b占用不同的内存。

若是现在执行一句$a=”dsd”:$a和$b所指向的内存数据需要重新写一次,此时zend核心会自动判断。自动为$b产生一个$a的数据拷贝,重新申请一块内存进行存储。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah skop pembolehubah fungsi PHP ditentukan? Bagaimanakah skop pembolehubah fungsi PHP ditentukan? Apr 16, 2024 pm 04:51 PM

Skop pembolehubah dalam PHP dibahagikan kepada tempatan (dalam fungsi), global (boleh diakses dalam program), dan skop kelas (boleh diakses dalam contoh kelas). Kata kunci global boleh mengisytiharkan pembolehubah tempatan sebagai pembolehubah global, dan kata kunci statik boleh mengisytiharkan pembolehubah tempatan sebagai pembolehubah statik, mengekalkan nilainya di antara panggilan fungsi.

Pemahaman mendalam tentang kitaran hayat fungsi Golang dan skop pembolehubah Pemahaman mendalam tentang kitaran hayat fungsi Golang dan skop pembolehubah Apr 19, 2024 am 11:42 AM

Dalam Go, kitaran hayat fungsi termasuk definisi, pemuatan, pemautan, pemulaan, panggilan dan skop pembolehubah dibahagikan kepada tahap fungsi dan tahap blok Pembolehubah dalam fungsi boleh dilihat secara dalaman, manakala pembolehubah dalam blok hanya kelihatan dalam blok .

Skop pembolehubah dan kitaran hayat dalam bahasa Go Skop pembolehubah dan kitaran hayat dalam bahasa Go Jun 01, 2023 pm 12:31 PM

Bahasa Go ialah bahasa taip statik sumber terbuka Ia mempunyai ciri-ciri kesederhanaan, kecekapan dan kebolehpercayaan, dan semakin digemari oleh pembangun. Dalam bahasa Go, pembolehubah ialah bentuk penyimpanan data yang paling asas dalam program Skop dan kitaran hayat pembolehubah adalah sangat penting untuk ketepatan dan kecekapan program. Skop pembolehubah merujuk kepada keterlihatan dan kebolehcapaian pembolehubah, iaitu di mana pembolehubah boleh diakses. Dalam bahasa Go, skop pembolehubah dibahagikan kepada pembolehubah global dan pembolehubah tempatan. Pembolehubah global ialah pembolehubah yang ditakrifkan di luar fungsi dan boleh digunakan di mana-mana dalam keseluruhan program

Bagaimana untuk menentukan skop pembolehubah dalam fungsi Golang? Bagaimana untuk menentukan skop pembolehubah dalam fungsi Golang? Apr 11, 2024 pm 12:27 PM

Dalam Go, skop fungsi mengehadkan keterlihatan pembolehubah kepada fungsi di mana pembolehubah diisytiharkan: Isytiharkan pembolehubah dalam fungsi: varnametype=value Skop dihadkan kepada blok kod yang diisytiharkan dan fungsi lain atau blok bersarang tidak boleh mengakses pembolehubah ini.

Skop pembolehubah PHP 5.6: Bagaimana untuk menentukan pembolehubah statik menggunakan kata kunci statik Skop pembolehubah PHP 5.6: Bagaimana untuk menentukan pembolehubah statik menggunakan kata kunci statik Jul 30, 2023 pm 11:02 PM

Skop pembolehubah PHP5.6: Cara menggunakan kata kunci statik untuk menentukan pembolehubah statik Dalam PHP, skop pembolehubah menentukan keterlihatan dan skop akses pembolehubah. Pembolehubah statik ialah jenis pembolehubah khas yang mengekalkan nilainya tidak berubah antara panggilan fungsi. Dalam PHP5.6 dan ke atas, anda boleh menggunakan kata kunci statik untuk menentukan pembolehubah statik di dalam fungsi dan kaedah kelas. Ciri-ciri pembolehubah statik ialah: skop pembolehubah statik terhad kepada fungsi atau kaedah di mana ia diisytiharkan. Pembolehubah statik digunakan antara fungsi atau panggilan kaedah

Cara menggunakan pembolehubah dalam PHP Cara menggunakan pembolehubah dalam PHP May 20, 2023 pm 02:33 PM

PHP ialah bahasa pembangunan web yang sangat popular yang membolehkan pembangun mencipta aplikasi web dinamik pada bahagian pelayan. Dalam PHP, pembolehubah ialah struktur data asas yang digunakan untuk menyimpan nilai dan data. Artikel ini akan memperkenalkan cara menggunakan pembolehubah dalam PHP. Sintaks Asas Pembolehubah Sintaks untuk mengisytiharkan pembolehubah dalam PHP adalah sangat mudah. Nama pembolehubah bermula dengan tanda dolar ($), diikuti dengan nama pembolehubah. Nama boleh ubah boleh menjadi gabungan huruf, nombor atau garis bawah, tetapi ia mesti bermula dengan huruf atau garis bawah. Sebagai contoh, kod berikut mengisytiharkan nama

Cara menggunakan pembolehubah superglobal dalam PHP Cara menggunakan pembolehubah superglobal dalam PHP May 20, 2023 pm 07:01 PM

Pembolehubah superglobal dalam PHP merujuk kepada pembolehubah yang boleh diakses dalam skop global Setiap pembolehubah superglobal ialah tatasusunan bersekutu, yang mengandungi banyak pembolehubah yang telah ditetapkan dalam PHP, seperti $_GET, $_POST, $_COOKIE, dsb. tunggu. Pembolehubah superglobal ini sangat penting dalam pembangunan web kerana ia menyediakan cara penting untuk mendapatkan maklumat daripada permintaan pengguna, seperti mendapatkan data borang, mendapatkan parameter URL, dsb. Artikel ini akan memperkenalkan secara terperinci pembolehubah superglobal yang biasa digunakan dalam PHP, termasuk fungsinya dan cara menggunakannya.

Apakah skop pembolehubah fungsi Golang Apakah skop pembolehubah fungsi Golang Dec 22, 2023 pm 02:39 PM

Skop pembolehubah fungsi Golang merujuk kepada keterlihatan dan kitaran hayat pembolehubah di dalam fungsi. Mengikut kedudukan dan skop pembolehubah dalam fungsi, pembolehubah boleh dibahagikan kepada tiga jenis: pembolehubah tempatan, pembolehubah parameter dan pembolehubah nilai pulangan. Pengenalan terperinci: 1. Pembolehubah setempat ialah pembolehubah yang ditakrifkan di dalam fungsi dan hanya boleh digunakan di dalam fungsi. Skopnya terhad kepada di dalam fungsi, termasuk semua blok kod dan blok kod bersarang bagi fungsi; parameter input yang diterima oleh fungsi dan boleh digunakan di dalam fungsi Skopnya terhad kepada bahagian dalam fungsi, dsb.

See all articles