Rumah php教程 php手册 PHP中全局变量global详解

PHP中全局变量global详解

May 25, 2016 pm 04:47 PM
global include require

本文章来详细的介绍关于PHP中全局变量global的方法,有需要了解global函数使用方法的朋友可参考本文章.

变量的范围即它定义的上下文背景(也就是它的生效范围).大部分的 PHP 变量只有一个单独的范围.这个单独的范围跨度同样包含了 include 和 require 引入的文件.

实例代码如下:

<?php
$a = 1;
include &#39;b.inc&#39;;
?>
Salin selepas log masuk

这里变量 $a 将会在包含文件 b.inc 中生效.但是,在用户自定义函数中,一个局部函数范围将被引入.任何用于函数内部的变量按缺省情况将被限制在局部函数范围内.例如:

实例代码如下:

<?php
$a = 1; /* global scope */
function Test() {
    echo $a; /* reference to local scope variable */
}
Test();
?>
Salin selepas log masuk

这个脚本不会有任何输出,因为 echo 语句引用了一个局部版本的变量 $a,而且在这个范围内,它并没有被赋值.你可能注意到 PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖.这可能引起一些问题,有些人可能不小心就改变了一个全局变量.PHP 中全局变量在函数中使用时必须申明为global.

今天就遇到了php 全局变量不起作用的问题.先上一段简单的代码:

实例代码如下:

<?php
$a = 0;
function Test() {
    $a = 1;
}
Test();
echo $a;
?>
Salin selepas log masuk

上面的代码中输出是0,那是因为函数体Test内$a变量被缺省设置为局部变量,$a的作用域就是在Test内.修改代码如下

实例代码如下:

<?php
$a = 0;
function Test() {
    global $a; //申明函数体Test内使用的$a变量为global全局变量
    $a = 1;
}
Test();
echo $a;
?>
Salin selepas log masuk

申明函数体Test内使用的$a变量为global全局变量后,使得$a的作用全局,所以输出为1.

上面的实例只是基本的global全局变量知识,下面我们看看复杂点的:

//A.php 文件

实例代码如下:

<?php
function Test_Global() {
    include &#39;B.php&#39;;
    Test();
}
$a = 0;
Test_Global();
echo $a;
?>
Salin selepas log masuk

//B.php 文件

<?php
function Test() {
    global $a; //申明函数体Sum内使用的$a变量为global全局变量
    $a = 1;
}
?>
Salin selepas log masuk

为什么输出的却是0?!!

在用户自定义函数中,一个局部函数范围将被引入.任何用于函数内部的变量按缺省情况将被限制在局部函数范围内(包括include 和 require 导入的文件内的变量)!

解释:A.php文件的内Test_Global是定义好的第三方函数,该函数用include导入了B.php文件内的$a的global全局变量,所以$a被限制在Test_Global局部函数范围内,所以B.php文件内的$a的作用范围都在Test_Global内,而不是作用了整个A.php内….

解决方案:

1. 冲出局部函数

实例代码如下:

//A.php 文件

<?php
function Test_Global() {
    Test();
}
include &#39;B.php&#39;; //将include 从局部Test_Global函数中移出
$a = 0;
Test_Global();
echo $a;
?>
Salin selepas log masuk

//B.php 文件

<?php
function Test() {
    global $a;
    $a = 1;
}
?>
Salin selepas log masuk

2.优秀的访问器

实例代码如下:

//A.php 文件

<?php
include &#39;B.php&#39;;
$a = 0;
Set_Global($a);
echo $a;
?>
Salin selepas log masuk

//B.php 文件

<?php
function Set_Global(&$var) {
    $var = 1;
}
?>
Salin selepas log masuk

 


文章网址:

随意转载^^但请附上教程地址。

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.

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)

vue3+vite: Bagaimana untuk menyelesaikan ralat apabila menggunakan memerlukan untuk mengimport imej secara dinamik dalam src vue3+vite: Bagaimana untuk menyelesaikan ralat apabila menggunakan memerlukan untuk mengimport imej secara dinamik dalam src May 21, 2023 pm 03:16 PM

Penggunaan vue3+vite:src memerlukan pengimportan imej secara dinamik dan laporan ralat dan penyelesaian vue3+vite secara dinamik Jika vue3 dibangunkan menggunakan skrip taip, akan terdapat mesej ralat untuk keperluan untuk memperkenalkan imej tidak boleh digunakan :require(' .../assets/test.png') diimport kerana typescript tidak menyokong require, jadi import digunakan Berikut ialah cara menyelesaikannya: gunakan awaitimport

Apakah perbezaan antara php include dan include_once Apakah perbezaan antara php include dan include_once Mar 22, 2023 am 10:38 AM

Apabila kami menulis halaman web menggunakan PHP, kadangkala kami perlu memasukkan kod daripada fail PHP lain dalam fail PHP semasa. Pada masa ini, anda boleh menggunakan fungsi include atau include_once untuk melaksanakan kemasukan fail. Jadi, apakah perbezaan antara include dan include_once?

Apakah kegunaan memerlukan? Apakah kegunaan memerlukan? Nov 27, 2023 am 10:03 AM

memerlukan penggunaan: 1. Memperkenalkan modul: Dalam banyak bahasa pengaturcaraan, require digunakan untuk memperkenalkan modul atau perpustakaan luaran supaya fungsi yang mereka sediakan boleh digunakan dalam atur cara. Contohnya, dalam Ruby, anda boleh menggunakan require untuk memuatkan perpustakaan atau modul pihak ketiga 2. Import kelas atau kaedah: Dalam sesetengah bahasa pengaturcaraan, require digunakan untuk mengimport kelas atau kaedah tertentu supaya ia boleh digunakan dalam fail semasa; ; 3. Melaksanakan tugas tertentu: Dalam beberapa bahasa pengaturcaraan atau rangka kerja, memerlukan digunakan untuk melaksanakan tugas atau fungsi tertentu.

Sistem Xiaomi Mesh AC1200: Sistem jaringan Wi-Fi baharu sehingga 370 meter persegi dilancarkan di seluruh dunia Sistem Xiaomi Mesh AC1200: Sistem jaringan Wi-Fi baharu sehingga 370 meter persegi dilancarkan di seluruh dunia Jun 19, 2024 pm 12:13 PM

Xiaomi telah memperkenalkan satu lagi sistem jaringan WLAN untuk pasaran global. Selepas penghala AC1200 (lebih kurang 69 euro di Amazon) mula dijual di negara ini, Xiaomi Mesh System AC1200 kini telah diumumkan. Produk baharu telah disenaraikan baru-baru ini

Langkah-langkah untuk menyelesaikan ralat maut dalam pengepala php: require(): Pembukaan yang gagal diperlukan 'data/tdk.php' (include_path='.;C:\php\pear') Langkah-langkah untuk menyelesaikan ralat maut dalam pengepala php: require(): Pembukaan yang gagal diperlukan 'data/tdk.php' (include_path='.;C:\php\pear') Nov 27, 2023 pm 12:51 PM

Langkah-langkah untuk menyelesaikan fatalerror:require():Failedopeningrequired'data/tdk.php'(include_path='.;C:phppear') dalam pengepala PHP Semasa membangunkan tapak web atau aplikasi menggunakan PHP, kita sering menghadapi pelbagai ralat . Salah satu ralat biasa ialah "fatalerror:require():Failed

Hashkey Global mengumumkan pelancaran Platform Binance Coin BNB! Zhao Changpengque membuat kesilapan Hashkey Global mengumumkan pelancaran Platform Binance Coin BNB! Zhao Changpengque membuat kesilapan Mar 04, 2025 am 06:36 AM

Hashkey, pertukaran cryptocurrency berlesen pertama di Hong Kong, mengumumkan pada Platform X pada 18 Februari bahawa platform perdagangan antarabangsa HashKeyGlobal secara rasmi melancarkan BNB (Binance Coin). "HashkeyGlobal menambah perdagangan tempat: BNB mengalu -alukan pengguna baru: deposit atau perdagangan BNB untuk mengambil bahagian dalam kolam hadiah HK $ 10,000 dan memenangi HK $ 10 ganjaran (pertama kali berkhidmat) Pengasas Zhao Changpeng (CZ) mengulas bahawa BNB berada di hashkeyglobal

Xiaomi melancarkan bar bunyi mampu milik dengan Bluetooth 5.3 dan pelbagai port Xiaomi melancarkan bar bunyi mampu milik dengan Bluetooth 5.3 dan pelbagai port Oct 01, 2024 am 06:22 AM

Xiaomi baru-baru ini menyenaraikan Xiaomi Soundbar 2.0ch di laman web globalnya, yang menunjukkan bahawa pelancaran global sedang menunggu, walaupun belum ada maklumat konkrit mengenai perkara ini. Seperti biasa, Xiaomi mendedahkan semua spesifikasi teknikal, tetapi tidak memberikan sebarang det

Penjelasan terperinci tentang peranan dan penggunaan kata kunci yang diperlukan dalam PHP Penjelasan terperinci tentang peranan dan penggunaan kata kunci yang diperlukan dalam PHP Jun 28, 2023 pm 11:31 PM

Penjelasan terperinci tentang peranan dan penggunaan kata kunci memerlukan dalam PHP Dalam pembangunan PHP, memerlukan adalah kata kunci yang sangat biasa digunakan. Fungsinya adalah untuk memasukkan fail yang ditentukan untuk digunakan oleh skrip semasa. Artikel ini akan menerangkan secara terperinci fungsi dan penggunaan kata kunci yang diperlukan. 1. Peranan kata kunci yang diperlukan Kata kunci yang diperlukan boleh memasukkan kandungan fail ke dalam skrip semasa. Ia biasanya digunakan untuk memasukkan beberapa fail luaran yang diperlukan, seperti fail perpustakaan, fail konfigurasi, dsb. Gunakan req

See all articles