Вызов функции-члена Stati c класса хранится как строка в PHP? - PullRequest
0 голосов
/ 20 апреля 2020

Поскольку я знаю, что можно вызывать функцию-член в классе, хранящемся как String. Но мне было интересно, есть ли способ сделать то же самое для функции-члена stati c в PHP. например:

class A
{
   public static function run(){
       echo "OK";
   }
}

"A"::"run"()

Что-то похожее на приведенный выше пример. Пожалуйста, помогите мне. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Вы можете назвать класс в виде строки

<?php
class A 
{
    public static function run()
    {
        echo "OK";
    }   
}

$stringClass = "A";
$staticMethod = "run";

$stringClass::$staticMethod();
0 голосов
/ 20 апреля 2020

Чтобы решить проблему такого типа, с которой я столкнулся при разработке удобной для пользователя инфраструктуры PHP, нужно сохранить имя класса и имя метода stati c в виде строки в некоторых PHP переменных.

$className = "A";
$methodName = "run";

И назовите это так:

$className::$methodName();

или другим способом

$func = "A::run";
$func(); //or
"A::run"();

И вот как вызывается метод stati c для класс хранится в виде строки. Этот один из способов, больше можно найти на https://www.designcise.com/web/tutorial/how-to-dynamically-invoke-a-class-method-in-php

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