我开始使用"命名空间"进行编码。
核心.php:
namespace Language;
class LanguageCore {
private $langCode = "pl";
private $language;
public function __construct(){
if(file_exists("lang/".substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2).".php"))
$this->langCode = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
require_once "lang/".$this->langCode.".php";
$this->language = new language();
}
public function gt($index = null)
{
return "its work";
}
}
一个工作得很好
索引.php:
require_once 'core.php';
use LanguageLanguageCore as Lang;
$lang = new Lang();
echo $lang->gt(); // return "its work"
但是当我尝试添加"使用功能"时,我遇到了致命错误
require_once 'core.php';
use LanguageLanguageCore as Lang;
use function LanguageLanguageCoregt as _;
$lang = new Lang();
echo _(); // return error
错误信息:
Fatal error: Uncaught Error: Call to undefined function LanguageLanguageCoregt()
我做错了什么?
问候!
编辑:我需要在类中使用这个函数,因为我在这个函数中使用了一个类变量。
如果要从 LanguageCore 类访问 gt 方法,则需要以这种方式调用它:
require_once 'core.php';
use LanguageLanguageCore as Lang;
$lang = new Lang();
echo $lang->gt();
这是因为 gt 是 LanguageCore 类的一种方法。因此,在启动此类时,您需要对存储在 $lang 变量中的对象调用该方法。
如果要使用use function
语法。您必须将方法移出类,如以下示例所示:
namespace Language {
function gt($index = null)
{
return "its work";
}
class LanguageCore {
private $langCode = "pl";
private $language;
public function __construct()
{
...
}
public function gt($index = null)
{
return "its work";
}
}
}