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