[請益] global變數失效問題

看板PHP作者 (Fu)時間6年前 (2018/09/25 18:14), 6年前編輯推噓0(003)
留言3則, 2人參與, 6年前最新討論串1/1
嗨,各位先進大家好,肥宅我遇到一個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://www.ptt.cc/bbs/PHP/M.1537870499.A.F84.html

09/25 21:08, 6年前 , 1F
確定是被清空,單純 call function 沒事,所以不可能是
09/25 21:08, 1F

09/25 21:09, 6年前 , 2F
a.php 自己清掉的?
09/25 21:09, 2F
我覺得應該是a.php清掉的,至於怎麼清我就不清楚了,除了重複宣告外 有什麼辦法可以清除global變數嗎? 或者是說我將連線資訊寫成物件,讓我的pdo.php class繼承就好? ※ 編輯: angle065 (114.36.10.224), 09/26/2018 10:26:48

09/27 08:47, 6年前 , 3F
有用 opcache 嗎?
09/27 08:47, 3F
我去問問主管正式機的環境,感謝提供線索 ※ 編輯: angle065 (1.160.3.108), 09/27/2018 14:33:51
文章代碼(AID): #1RgWgZ-4 (PHP)
文章代碼(AID): #1RgWgZ-4 (PHP)