簡體   English   中英

PHP包含文件變量丟失范圍

[英]PHP include file variables losing scope

在一個類中,我有一個從外部文件中讀取一些變量的方法。 然后,我使用這些包含的變量設置成員變量。 但是,一旦此方法完成,成員變量將重置為null。 我究竟做錯了什么?

main.php

$bob = new Object();
$bob->init();
echo $bob->value;

Object.php

public function init() {
include('/includefile.inc');
$this->value = $included_value;
echo $this->value;
}

includefile.inc

<? $included_value = 'Hello World'; ?>

Object.php內部的回顯將正常工作,但main中的外部回顯將為null。 value是Object.php類定義內的公共變量。

直接從手冊中引用...

當包含文件時,該文件包含的代碼將繼承包含所在行的變量范圍。 從那時起,調用文件中該行上可用的任何變量將在被調用文件中可用。 但是,包含文件中定義的所有函數和類都具有全局作用域。

因此...

public function init() {
 $included_value=false;
 include('/includefile.inc');
 $this->value = $included_value;
 echo $this->value;
}

應該可以按照您的預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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