Heim Backend-Entwicklung PHP-Tutorial class_core.php中 global $_G含意 第一次为了声明这是全局变量 第二次表示传递变量,而不是声明全局

class_core.php中 global $_G含意 第一次为了声明这是全局变量 第二次表示传递变量,而不是声明全局

Jun 13, 2016 am 11:45 AM
class discuz global nbsp

class_core.php中 global $_G含义 第一次为了声明这是全局变量 第二次表示传递变量,而不是声明全局
源:http://www.discuz.net/forum.php?mod=viewthread&tid=3007341
评:global $_G含义  第一次为了声明这是全局变量 第二次表示传递变量,而不是声明全局 
看你纠结的,一看就是没怎么做过DZ插件了,这个变量这么用的意义,我这么解释吧:
/source/class/discuz/discuz_application.php(X2.5)
/source/class/class_core.php(X2.0)
在这个文件的_init_env()方法中global $_G的含义就是为了声明这是个全局变量,里面存放的是一些系统最频繁用到的相关的全局信息,主要是为了后面对各功能实现的便利性。例如我要得知当前用户的UID,那我直接读取$_G['uid']就行了,而不用再二次查询session或者数据库,这样可以提高效率,编写其余的各模块程序,代码量也会变得非常简洁。

如果你要问哪里是定义,就是这段(省略一大段):

                    global $_G; //为了声明这是全局变量
                    $_G = array(
                            'uid' => 0,
                            'username' => '',
                             ..................
                    );



在除了这个文件以外的其它文件,如果用了global $_G,则表示为了传递这个变量。
例如说我在插件开发中,有这样的方法:

            function viewthread_postfooter_output(){
                    global $_G; //表示传递变量,而不是声明全局              
                    return $_G['uid'];
            }



对开发者来说$_G变量的存在意义是“只读”的,换句话说,没有人会写程序的时候,随便去初始化这个变量。

另外作为商业机构而不是公益科研机构的程序作品,工作人员也没有义务来告诉你代码含义吧,所谓的可读性还请自己多加学习理解了?这好比没有哪家饭店主动把招牌菜的烹饪秘方主动告诉顾客一样。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Discuz-Lösung für das Anmeldeproblem im Hintergrund enthüllt Discuz-Lösung für das Anmeldeproblem im Hintergrund enthüllt Mar 03, 2024 am 08:57 AM

Discuz-Lösung für das Anmeldeproblem im Hintergrund enthüllt

Was ist Discuz? Definition und Funktionseinführung von Discuz Was ist Discuz? Definition und Funktionseinführung von Discuz Mar 03, 2024 am 10:33 AM

Was ist Discuz? Definition und Funktionseinführung von Discuz

Ein Muss für Discuz-Benutzer! Umfassende Analyse zum Umbenennen von Requisiten! Ein Muss für Discuz-Benutzer! Umfassende Analyse zum Umbenennen von Requisiten! Mar 12, 2024 pm 10:15 PM

Ein Muss für Discuz-Benutzer! Umfassende Analyse zum Umbenennen von Requisiten!

Ausführliche Erläuterung des Discuz-Registrierungsprozesses: So können Sie persönliche Daten einfach ändern Ausführliche Erläuterung des Discuz-Registrierungsprozesses: So können Sie persönliche Daten einfach ändern Mar 13, 2024 pm 12:21 PM

Ausführliche Erläuterung des Discuz-Registrierungsprozesses: So können Sie persönliche Daten einfach ändern

Was soll ich tun, wenn ich auf ein falsches Discuz-Passwort stoße? Schneller Lösungsaustausch! Was soll ich tun, wenn ich auf ein falsches Discuz-Passwort stoße? Schneller Lösungsaustausch! Mar 03, 2024 am 09:33 AM

Was soll ich tun, wenn ich auf ein falsches Discuz-Passwort stoße? Schneller Lösungsaustausch!

Discuz-Hintergrundanmeldung fehlgeschlagen? Bringen Sie Ihnen bei, wie Sie es einfach lösen können! Discuz-Hintergrundanmeldung fehlgeschlagen? Bringen Sie Ihnen bei, wie Sie es einfach lösen können! Mar 02, 2024 pm 06:03 PM

Discuz-Hintergrundanmeldung fehlgeschlagen? Bringen Sie Ihnen bei, wie Sie es einfach lösen können!

Anleitung zur Änderung des Discuz-Domänennamens Anleitung zur Änderung des Discuz-Domänennamens Mar 09, 2024 pm 04:36 PM

Anleitung zur Änderung des Discuz-Domänennamens

Discuz Editor: ein effizientes Post-Layout-Tool Discuz Editor: ein effizientes Post-Layout-Tool Mar 10, 2024 am 09:42 AM

Discuz Editor: ein effizientes Post-Layout-Tool

See all articles