这种表示法在PHP中意味着什么?

时间:2018-09-15 07:41:04

标签: php

我注意到以下PHP表示法。什么意思?

$locales = GeneralUtility::makeInstance(Locales::class);

我在理解makeInstance的参数时遇到问题。语言环境似乎是另一个静态类。

的表示法是什么意思
Locales::class

明确地?它会期望什么样的参数?

1 个答案:

答案 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中已更改...因此您可以定义一个函数并将其命名为classfunction等。但是,除非您认为绝对必要,否则最好不要这样做。