3
有幾個職位與此相關,但我沒有看到任何接近我正在努力的情況。在包含的文件中的範圍損失在PHP
我已經繼承了一個相當大的代碼庫,原始設計師採用了一些有趣的設計方法。我試圖調用一個定義類的方法。類文件本身有一些全局變量集。我從一個函數中調用這個方法,其中也包含了這個文件。當方法運行時,全局變量不再被定義。請看下圖:
我的文件:
<?php //myScript.php
echo("Calling foo(): ");
foo();
function foo() {
include '../../php/class.bar.php';
$bar = new bar();
$bar->doSomething();
}
?>
../../php/class.bar.php:
$GLOBAL_ARRAY_ONE[0] = 'Here I am';
$GLOBAL_ARRAY_ONE[1] = 'JT';
class bar {
public $itsFoo = array();
public $itsBar = array();
public function doSomething() {
global $GLOBAL_ARRAY_ONE;
$this->itsFoo[0] = $GLOBAL_ARRAY_ONE[0];
$this->itsFoo[1] = $GLOBAL_ARRAY_ONE[1];
var_dump($this->itsFoo);
}
}
所以,當我跑「 myScript.php「的輸出是:calling foo(): NULL
我個人不會聲明像這樣的腳本中的全局數組,但我沒有理由不能訪問它們。
任何想法?謝謝!
這是完全正確的。我自己嘗試了這個,並且在var_dump()上接受了NULLS,但是,將這些包含函數移出這個函數讓它一切正常! – nageeb
嘿Whaddya知道!我發誓我試過了!謝謝您的幫助! – eggmatters