为什么PHP函数里边的$db需要写成global $db才能正常

A文件 include_once B文件

B文件中有: $db = new mysql(DB_HOST, DB_USER, DB_PW, DB_NAME, DB_CHARSET);声明

然后A文件include_once C文件,再引用C文件中的函数(是函数哦带参数传递的),这是C中的函数里边的$db需要写成global $db;才能使用,而且就算在C的函数里 include_once B 一次,不global
一次,也找不到$db,提示Notice: Undefined variable: db

为啥???

第1个回答  推荐于2018-04-19
作用范围的问题,函数里面是一个封闭的环境,如果不是全局变量的话,是不能在函数里面使用的。

global $db, 声明 $db 的作用范围为全局,就可以在函数里面使用了

回复能不能正常点,还要脑补的, - -!,首先,你可以在第一次声明的时候声明 global 这个看你的需求,其次,函数里面去include 的文件,我是没有遇到过谁这么写过,初次声明的时候 global 就行了,没必要去钻牛角尖。估计不能起作用的问题是,include_once 只引入一次文件,第二次 include_once同一文件的时候是忽略的,换成 include 的试试。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网