php 变量作用域学习笔记分享
变量作用域就是一个变量在页面与函数之间可不可以相互使用,它的作用范围在哪里,下面小编来给大家介绍php变量使用域的一些学习笔记拿出来与大家交流一下。
在php当中变量的作用范围php手册上是这样描述的
在用户自定义函数中,一个局部函数范围将被引入,任何用于函数内部的变量按缺省情况将被限制在局部函数范围内。例如如下代码:
<?php $a = 1; /* global scope */ function Test() { echo $a; /* reference to local scope variable */ } Test(); ?>
这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值。你可能注意到 PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖,上面开个头,下面我来来详细介绍
在PHP中变量主要有:内置超级全局变量,一般的变量,常量,全局变量,静态变量等.
■内置超级全局变量可以在脚本的任何地方使用和可见。即如果我们在一个PHP页面中改变了其中的一个值,那么在其他PHP页面中使用时,它的值也会发生改变。
■常量一旦被声明将可以在全局可见,也就是说,它们可以函数内外使用,但是这仅仅限于一个页面之中(包含我们通过include和include_once)包含进来的PHP脚本,但是在其他的页面中就不能使用了。
■在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部,在函数内部的变量如果与全局变量名称相同,以函数内部的变量为准。
■函数内部使用的变量声明为全局变量时,其名称要与全局变量的名称一致,在这样的情况下,我们就可以在函数中使用函数外部的全局变量了,这样就可以避免上一种因为函数内部的变量与外部的全局变量名称相同而覆盖了外部变量这样的情况。
■在函数内部创建并声明为静态的变量无法在函数外部可见,但是可以在函数的多次执行过程中保持该值,最常见的情况就是在函数的递归执行的过程之中。
■在函数内部创建的变量对函数来说是本地的,而当函数终止时,该变量也就不存在了。
超级全局变量的完整列表如下:
■.$GOBALS 所有全局变量数组
■.$_SERVER 服务器环境变量数组
■.$_POST 通过POST方法传递给该脚本的变量数组
■.$_GET 通过GET方法传递给该脚本的变量数组
■.$_COOKIE cookie变量数组
■.$_FILES 与文件上传相关的变量数组
■.$ENV 环境变量数组
■.$_REQUEST 所有用户输入的变量数组包括$_GET $_POST $_COOKIE 所包含的输入内容
■.$_SESSION 会话变量数组
1、局部变量
在函数中声明的变量认为是局部变量,即它只能在该函数中引用,如果在函数外复制,讲被认为是完全不同的另一个变量(即不同于函数中所包含的那个变量)。注意,退出声明变量的函数时,变量及其相应的值就会撤销,代码如下:
<?php $x = 4; function assignx() { $x = 0; printf("$x inside function is %d <br/>", $x); } assignx(); printf("$x outside of function is %d <br/>", $x); ?>
2、函数参数
PHP和其他编程语言一样,任何接受参数的函数都必须在函数首部中声明这些参数。虽然这些参数(值参数)接受函数外部的值,但退出函数后就无法再访问这些参数,代码如下:
<?php function x10($value) { $value = $value = $value * 10return $value; } ?>
记住,虽然在声明参数的函数内部可以访问和出力这些函数参数,但当函数执行结束时,参数就会撤销。
3、全局变量
全局变量可以在程序的任何地方访问。但是,为了修改一个全局变量,必须要修改该变量的函数中将其显式地声明为全局变量。只要在变量前面加上关键字GLOBAL,就是全局变量。如果将GLOBA关键字放在一个已有的变量前面,则是告诉PHP姚使用同名的变量。
使用 $GLOBALS 替代 global,代码如下:
<?php $a = 1; $b = 2; function Sum() { $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; } Sum(); echo $b; ?>
在 $GLOBALS 数组中,每一个变量为一个元素,键名对应变量名,值变量的内容。$GLOBALS 之所以在全局范围内存在,是因为 $GLOBALS 是一个超全局变量。以下范例显示了超全局变量的用处:
例子 12-3.,演示超全局变量和作用域的例子,代码如下:
<?php function test_global() { // 大多数的预定义变量并不 "super",它们需要用 'global' 关键字来使它们在函数的本地区域中有效。 global $HTTP_POST_VARS; print $HTTP_POST_VARS['name']; // Superglobals 在任何范围内都有效,它们并不需要 'global' 声明。Superglobals 是在 PHP 4.1.0 引入的。 print $_POST['name']; } ?>
使用静态变量
变量范围的另一个重要特性是静态变量(static variable)。静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。看看下面的例子:
例子12-4. 演示需要静态变量的例子,代码如下:
<?php function Test() { $a = 0; echo $a; $a++; } ?>
本函数没什么用处,因为每次调用时都会将 $a 的值设为 0 并输出 "0"。将变量加一的 $a++ 没有作用,因为一旦退出本函数则变量 $a 就不存在了。要写一个不会丢失本次计数值的计数函数,要将变量 $a 定义为静态的:
例子 12-5,使用静态变量的例子:
<?php function Test() { static $a = 0; echo $a; $a++; } ?>
现在,每次调用 Test() 函数都会输出 $a 的值并加一。
静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的函数。写递归函数时要小心,因为可能会无穷递归下去。必须确保有充分的方法来中止递归。一下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止:
例子 12-6,静态变量与递归函数,代码如下:
<?php static $count = 0; $count++; echo $count; if ($count < 10) { Test(); } $count--; } ?>
注: 静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。
例子 12-7.声明静态变量,代码如下:
<?php function foo() { static $int = 0; // correct static $int = 1 + 2; // wrong (as it is an expression) static $int = sqrt(121); // wrong (as it is an expression too) $int++; echo $int; } ?>
注意有朋友问我全局静态变量 ,在php中没有全局变量这一说活,php是一种解释型的语言,虽然有static修饰符,但意思与.Net中的完全不一样。
即使把类中的一个变量声明为static,这个变量也只在当前页面级的应用程序域中有效。
2、理解变量作用域。
在方法体外声明的变量,在方法体内是访问不到的。实例代码如下:
<?php function _DisplayUrl() { echo $url; } function DisplayUrl() { global $url; echo $url; } _DisplayUrl(); DisplayUrl(); ?>
<?php $url = "www.phprm.com"; function _DisplayUrl() { echo $url; } function DisplayUrl() { global $url; echo $url; } _DisplayUrl(); DisplayUrl(); ?>
_DisplayUrl方法是不会显示任何结果,因为变量$url在方法体_DisplayUrl中是无法访问的,在$url前加上global即可,如DisplayUrl方法。
在方法体中定义的global变量可以在方法体外访问,代码如下:
?php function _DisplayUrl() { global $myName; $myName = 'yibin'; } _DisplayUrl(); echo $myName; //output yibin ?>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Analisis peranan dan prinsip nohup Dalam sistem pengendalian seperti Unix dan Unix, nohup ialah arahan yang biasa digunakan yang digunakan untuk menjalankan arahan di latar belakang Walaupun pengguna keluar dari sesi semasa atau menutup tetingkap terminal, arahan itu boleh masih terus dilaksanakan. Dalam artikel ini, kami akan menganalisis fungsi dan prinsip arahan nohup secara terperinci. 1. Peranan nohup: Menjalankan arahan di latar belakang: Melalui arahan nohup, kita boleh membiarkan arahan yang berjalan lama terus dilaksanakan di latar belakang tanpa terjejas oleh pengguna yang keluar dari sesi terminal. Ini perlu dijalankan

Apakah yang dilakukan oleh penyesuai Bluetooth? Dengan perkembangan berterusan sains dan teknologi, teknologi komunikasi tanpa wayar juga telah dibangunkan dan dipopularkan dengan pantas. Antaranya, teknologi Bluetooth, sebagai teknologi komunikasi tanpa wayar jarak dekat, digunakan secara meluas dalam penghantaran data dan sambungan antara pelbagai peranti. Penyesuai Bluetooth memainkan peranan penting sebagai peranti penting yang menyokong komunikasi Bluetooth. Penyesuai Bluetooth ialah peranti yang boleh menukar peranti bukan Bluetooth kepada peranti yang menyokong komunikasi Bluetooth. Ia merealisasikan sambungan wayarles dan penghantaran data antara peranti dengan menukar isyarat wayarles kepada isyarat Bluetooth. Penyesuai Bluetooth

Memahami peranan dan penggunaan LinuxDTS Dalam pembangunan sistem Linux terbenam, Device Tree (DeviceTree, singkatan DTS) ialah struktur data yang menerangkan peranti perkakasan dan hubungan sambungan dan atributnya dalam sistem. Pokok peranti membolehkan kernel Linux berjalan secara fleksibel pada platform perkakasan yang berbeza tanpa mengubah suai kernel. Dalam artikel ini, fungsi dan penggunaan LinuxDTS akan diperkenalkan, dan contoh kod khusus akan disediakan untuk membantu pembaca memahami dengan lebih baik. 1. Peranan pokok peranti pokok peranti

Kepentingan dan peranan fungsi define dalam PHP 1. Pengenalan asas kepada fungsi define Dalam PHP, fungsi define ialah fungsi utama yang digunakan untuk menentukan pemalar tidak akan mengubah nilainya semasa menjalankan program. Pemalar yang ditakrifkan menggunakan fungsi define boleh diakses di seluruh skrip dan bersifat global. 2. Sintaks fungsi define Sintaks asas fungsi define adalah seperti berikut: define("constant name","constant value&qu

Pembolehubah contoh dalam Java merujuk kepada pembolehubah yang ditakrifkan dalam kelas, bukan dalam kaedah atau pembina. Pembolehubah contoh juga dipanggil pembolehubah ahli Setiap contoh kelas mempunyai salinan pembolehubah contoh sendiri. Pembolehubah contoh dimulakan semasa penciptaan objek, dan keadaannya disimpan dan dikekalkan sepanjang hayat objek. Takrif pembolehubah contoh biasanya diletakkan di bahagian atas kelas dan boleh diisytiharkan dengan mana-mana pengubah suai akses, yang boleh menjadi umum, peribadi, dilindungi atau pengubah akses lalai. Ia bergantung kepada apa yang kita mahu ini

Python digunakan secara meluas dalam pelbagai bidang dengan sintaksnya yang ringkas dan mudah dibaca. Menguasai struktur asas sintaks Python adalah penting, kedua-duanya untuk meningkatkan kecekapan pengaturcaraan dan untuk mendapatkan pemahaman yang mendalam tentang cara kod tersebut berfungsi. Untuk tujuan ini, artikel ini menyediakan peta minda komprehensif yang memperincikan pelbagai aspek sintaks Python. Pembolehubah dan Jenis Data Pembolehubah ialah bekas yang digunakan untuk menyimpan data dalam Python. Peta minda menunjukkan jenis data Python biasa, termasuk integer, nombor titik terapung, rentetan, nilai Boolean dan senarai. Setiap jenis data mempunyai ciri dan kaedah operasinya sendiri. Operator Operator digunakan untuk melaksanakan pelbagai operasi pada jenis data. Peta minda merangkumi jenis operator yang berbeza dalam Python, seperti operator aritmetik, nisbah

Menggunakan Ajax untuk mendapatkan pembolehubah daripada kaedah PHP adalah senario biasa dalam pembangunan web Melalui Ajax, halaman boleh diperoleh secara dinamik tanpa menyegarkan data. Dalam artikel ini, kami akan memperkenalkan cara menggunakan Ajax untuk mendapatkan pembolehubah daripada kaedah PHP, dan memberikan contoh kod khusus. Pertama, kita perlu menulis fail PHP untuk mengendalikan permintaan Ajax dan mengembalikan pembolehubah yang diperlukan. Berikut ialah kod contoh untuk fail PHP mudah getData.php:

PHP ialah bahasa skrip bahagian pelayan yang digunakan secara meluas dalam pembangunan web Fungsi utamanya adalah untuk menjana kandungan web yang dinamik Apabila digabungkan dengan HTML, ia boleh mencipta halaman web yang kaya dan berwarna-warni. PHP berkuasa Ia boleh melaksanakan pelbagai operasi pangkalan data, operasi fail, pemprosesan borang dan tugas lain, menyediakan interaktiviti dan fungsi yang berkuasa untuk tapak web. Dalam artikel berikut, kami akan meneroka lebih lanjut peranan dan fungsi PHP, dengan contoh kod terperinci. Mula-mula, mari kita lihat penggunaan biasa PHP: penjanaan halaman web dinamik: P
