我注意到以下PHP表示法。什么意思?
$locales = GeneralUtility::makeInstance(Locales::class);
我在理解makeInstance的参数时遇到问题。语言环境似乎是另一个静态类。
的表示法是什么意思Locales::class
明确地?它会期望什么样的参数?
答案 0 :(得分:0)
根据文档http://persoonlijktelefoonhoesje.nl/product/geometric-unicorn-telefoonhoesje/,您可以使用它来获取类的完全限定名称。
以您的情况为例,假设Locale
类的定义如下:
file1.php
<?php
namespace App\Core;
class Locale {}
echo Locale::class; // output - App\Core\Locale
在单独的文件中,您可以require
/ autoload
文件
file2.php
<?php
require_once #pathToFile1/file1.php;
use App\Core\Locale;
echo Locale::class; // output - App\Core\Locale
我们还可以看到,我们不再需要将类名保存在变量中,因为我们可以随时调用Locale::class
并继续进行。
要解决对这个问题的评论之一,是的,class
是一个关键字,将其用作函数名通常会导致一个parse error
。.尽管在PHP 7中已更改...因此您可以定义一个函数并将其命名为class
,function
等。但是,除非您认为绝对必要,否则最好不要这样做。