0
CodeIgniter框架有一個可怕的函數is_php()。在類之外聲明的靜態變量
/**
* Determines if the current version of PHP is greater then the supplied value
*
* Since there are a few places where we conditionally test for PHP > 5
* we'll set a static variable.
*
* @access public
* @param string
* @return bool TRUE if the current version is $version or higher
*/
if (! function_exists('is_php'))
{
function is_php($version = '5.0.0')
{
static $_is_php;
$version = (string)$version;
if (! isset($_is_php[$version]))
{
$_is_php[$version] = (version_compare(PHP_VERSION, $version) < 0) ? FALSE : TRUE;
}
return $_is_php[$version];
}
}
注意,變量$_is_php
定義static
。這個函數沒有在任何類中定義,所以我沒有看到static
定義是正確的語法,即使它(假設)確實具有使變量在函數調用中持久存在的(假定的)預期效果。我沒有看到the PHP documentaion中提到的這種用法。 static
關鍵字記錄的這種非類使用情況在哪裏?這是PHP的'未公開的功能',可能不支持,因此不應該依賴?
嘿那裏,好久不見!感謝您鏈接到的總結手冊頁,我想知道爲什麼Google在搜索PHP靜態時不會返回它。 – dotancohen