我正在尝试访问函数之外的变量。
这是我的测试代码:
Android Studio V1.2.1.1
compileSdkVersion 22
buildToolsVersion "22.0.0"
minSdkVersion 14
targetSdkVersion 22
我知道我可以这样做:
function testPARENT() {
$var1 = 'TEST1';
$var2 = 'TEST2';
list_LOOP();
}
function list_LOOP() {
echo $var1
}
但这不是我想要做的,因为我有很多变量,而且该函数应该用作一种包含函数。
答案 0 :(得分:1)
有许多(php)设计模式。 为此你可以使用Singleton(实际上这是一个反模式)。
单身人士的例子:
<?php
class Registry{
private static $instance = null;
private $storage = array();
public static function getInstance(){
if( self::$instance === null ){
self::$instance = new self();
}
return self::$instance;
}
public function set( $name, $value ){
$this->storage[$name] = $value;
}
public function get( $name ){
if( isset( $this->storage[$name] )) {
return $this->storage[ $name ];
}
return null;
}
}
// usage example
$storage = Registry::getInstance();
$storage->set('test', 'testing!');
echo $storage->get('test');
function testing($storage) {
$storage->set('test', 'TESTING123');
return $storage->get('test');
}
echo testing($storage);
?>
我在下面添加了一些链接,其中包含一些额外信息。
答案 1 :(得分:0)
试试这段代码:
function testPARENT() {
global $var1;
$var1 = 'TEST1';
$var2 = 'TEST2';
list_LOOP();
}
function list_LOOP() {
global $var1;
echo $var1;
}
testPARENT();
要完成此操作,您必须将$var1
变量定义为全局