2014-12-29 35 views
2

我使用Laravel 4.2,並注意到在app/tests/TestCase.php文件這個有趣的方法:PHPUnit使用的這些函數變量的值如何?

public function createApplication() 
{ 
    $unitTesting = true; 
    $testEnvironment = 'testing'; 
    return require __DIR__ . '/../../bootstrap/start.php'; 
} 

兩個$unitTesting$testEnvironment被限定在功能和應,在理論上,被扔掉的功能完成時...但是,除去這些變量會導致PHPUnit中的錯誤。

我想弄清楚如何使用這些變量,無論是通過一些反射魔術或什麼...任何照明將不勝感激。

+2

也許它們被用在包含get的文件中? – Rizier123

+2

請記住PHP'require'和類似的函數像C的'#inc'一樣工作 - 它們只是直接在文件內容的內部插入文件的內容。 –

+0

@AlexisKing對,你確實是對的。我搜索了一些'嵌套'的'require',並在'vendor/laravel/Foundation/start.php'中找到了用法。謝謝 – derekmckinnon

回答

1

我想變量得到使用的文件被包括在內!

因爲要知道require做什麼!

舉個例子:

file1.php:

$foo = $unitTesting . $testEnvironment; 

file2.php:

public function createApplication() 
{ 
    $unitTesting = true; 
    $testEnvironment = 'testing'; 
    return require "file1.php"; 
} 

因此,如果需要做文件2看起來是這樣的:

public function createApplication() 
{ 
    $unitTesting = true; 
    $testEnvironment = 'testing'; 
    return $foo = $unitTesting . $testEnvironment; 
} 

所以,你可以看到變量可以/幾乎已經在所需的文件中使用

+0

你的例子不應該是'return require'file1.php';'? – lukasgeiter

+0

@lukasgeiter :)謝謝,我會說一個很好的副本錯字。 – Rizier123