Как получить доступ к статическим свойствам класса - PullRequest
0 голосов
/ 27 июня 2019

Я посмотрел ответы на переполнение стека, включая этот , но ничего не помогло, и я чувствую, что это так просто! Я не понимаю.

У меня есть файл в /app/C/V1/RM.php:

<?php

namespace App\C\V1;

class RM{
    public static $info = [
        key => 'rm',
        name => 'RM Title Here',
        logo => '',
        status => 'alpha'
    ];
}

Я пытаюсь получить $info в контроллере Laravel следующим образом:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\C\V1;

class CourierApiV1Controller extends Controller
{    
    public function listC(Request $request) {
        $info = V1\RM::info;
        return response()->json([
            'info' => $info
        ]);
    }
}

Почему это не работает? Как я могу получить статическое свойство?

Ответы [ 2 ]

4 голосов
/ 27 июня 2019

Вы должны использовать single quote ИЛИ double quote для индекса массива, по умолчанию они обрабатываются как const, поэтому вы получаете ошибку

class RM{
 public static $info = [
    'key' => 'rm',
    'name' => 'RM Title Here',
    'logo' => '',
    'status' => 'alpha'
 ];
}
1 голос
/ 27 июня 2019

Вам нужно добавить $ для вызова статических свойств

RM::$info 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...