作者angle065 (Fu)
看板PHP
标题[请益] global变数失效问题
时间Tue Sep 25 18:14:57 2018
嗨,各位先进大家好,肥宅我遇到一个global变数的问题
首先我有一只pdo.php,内建一个class,前人写的连线资讯是一只cntdb.php
cntdb.php会宣告一个阵列$db_array,内含资料库的连线资讯
故我再pdo的class建构子内宣告global $db_array,方便读取资料库连线资讯
然後member.php内有一个class member,其中有一个memberInfo的function
memberInfo我需要使用pdo连线,於是我再member.php最上层include_once pdo.php
问题来了,今天有一只a.php呼叫$member->memberInfo();的时候,pdo建立连线失败
最後查到是因为$db_array再那个情境下已经变空了
但是我自己写一支很单纯只有include member.php的php,一样去呼叫
$member->memberInfo();,却可以透过PDO连线到资料库
我原本想说是不是$db_array这个变数重复,导致global失效
後来将$db_array改成$db_array2018、$db_array20180925等等
也一样拿不到$db_array
不知道有没有哪个大大可以帮忙推测或指点可能的原因?
是再想说有没有可能是php有禁止使用global的可能?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.36.10.224
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1537870499.A.F84.html
1F:→ JustGame: 确定是被清空,单纯 call function 没事,所以不可能是 09/25 21:08
2F:→ JustGame: a.php 自己清掉的? 09/25 21:09
我觉得应该是a.php清掉的,至於怎麽清我就不清楚了,除了重复宣告外
有什麽办法可以清除global变数吗?
或者是说我将连线资讯写成物件,让我的pdo.php class继承就好?
※ 编辑: angle065 (114.36.10.224), 09/26/2018 10:26:48
3F:→ gname: 有用 opcache 吗? 09/27 08:47
我去问问主管正式机的环境,感谢提供线索
※ 编辑: angle065 (1.160.3.108), 09/27/2018 14:33:51