簡體   English   中英

PHP包含和類范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM