[英]PHP Include and Class Scope
我在開發的腳本中存在var作用域問題,現在我想我將不得不重寫我的所有方法,但請問是否有人可以將我指向正確的方向。
file1.php
<?php
$db = new SystemDB();
include('file2.php');
someFile2Function();
?>
file2.php
<?php
function someFile2Function(){
$db = new Database;
include('class.php');
$class = new CustomClass();
$class->someMethod();
}
?>
class.php
<?php
class CustomClass {
function someMethod(){
global $db; <-- this var is the file1.php var and not the file2.php function var
// execute some query
}
}
?>
我的問題是,在類內部,正在使用的var $ db是file1.php中的一個,而不是file2.php中someFile2Function()中的一個。
有沒有一種方法可以使用全局$ db,該全局$ db使用someFile2Function()上聲明的var $ db;
謝謝。
正如@RiggsFolly提到的那樣,在課堂上授課global不是一個好主意,因為存在沖突的可能性。 將其用作參數,該參數會動態更改,具體取決於調用它的方法/對象。
function someMethod($db){
var_dump($db);
}
而且也可以將file2.php中的函數從該類移至該函數(如果該類僅需要此函數)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.