我有3個文件,聲明命名空間(例如簡約):PHP中的函數GLOBAL的範圍是什麼?
<?php //f1.php
namespace Sheet;
$base = [1,2,3];
?>
<?php // f2.php
namespace Sheet;
require_once('f1.php');
var_dump($base); // ----> array(1,2,3)
class Reader {
public static function get($pos) {
GLOBAL $base;
var_dump($base); // ----> NULL
foreach ($base as $idx => $val) {
if ($pos == ($idx +1)) return $base[$idx];
}
return null;
}
}
?>
<?php //test.php
namespace Test;
require_once('f2.php');
print \Sheet\Reader::get(1); // expected: '2'
?>
不知怎的,我得到的foreach無效參數異常。
我想知道GLOBAL聲明的範圍是什麼 - 有什麼想法?
編輯:我如何以更方便的方式訪問函數get()
中的變量?
@PedroLobito誰能想到它是如此的邏輯? :) – Rizier123
更好的改寫:我如何從同一個命名空間的函數中訪問命名空間的'$ base'變量? – BananaAcid
你應該通過它作爲獲取方法 –