Можно ли сделать что-то вроде этого?
public function something() {
    $thisMethodName = method_get_name(); 
}
Где method_get_name() возвращает имя метода?
Можно ли сделать что-то вроде этого?
public function something() {
    $thisMethodName = method_get_name(); 
}
Где method_get_name() возвращает имя метода?
Конечно, вам нужны магические константы.
function myFunction() { print __FUNCTION__." in ".__FILE__." at ".__LINE__."\n"; }
Узнайте больше из руководство по php
 Хотя вы можете использовать магическую константу __METHOD__ я настоятельно рекомендую проверить отражение PHP. Это поддерживается в PHP5.
$modelReflector = new ReflectionClass(__CLASS__);
$method = $modelReflector->getMethod(__METHOD__);
Затем вы можете делать такие вещи, как проверка подписи и т.д.
Как подсказывает smartj, вы можете попробовать волшебную константу __METHOD__, но помните, что это вернет строку, содержащую также ваше имя класса, то есть "MyClass:: something".
Использование __FUNCTION__ вместо этого вернет "что-то".
Использование __FUNCTION__ - это путь вместо:
 public function something() {
     $thisMethodName = "something";
 }
который несколько пугает добавление переменной и памяти для хранения имени метода в виде строки и дублирования того, что уже существует, поэтому излишне добавляя используемые ресурсы (если вы делаете это для большой библиотеки со многими методами, это имеет большое значение).
Магические константы в PHP гарантированно не изменятся, в то время как для этого подхода потребуется применимое редактирование, если имя метода было изменено, тем самым представляя потенциал для несогласованности (обратите внимание, что я действительно сказал, что это означает, что это просто ненужное редактирование если вместо этого использовалась магическая константа).
Время и усилия, чтобы назвать переменную, введите тип метода в виде строки, назначенной этой ненужной переменной, и, конечно, правильно ссылаясь на имя переменной, которая является мотивацией для PHP, снабжающей магические константы, чтобы начать (и опровергнуть любое требование __FUNCTION__ не требуется).
Hackish, но вы также можете его выкопать из возвращаемого значения debug_backtrace().
 С __FUNCTION__ я могу использовать это:
protected static function getUserResponseByAccessTokenRequestOptions(string $myParam): array
{
    return array_merge(parent::{__FUNCTION__}($myParam), [
        'myValue' => '123'
    ]);
}
 вместо этого:
protected static function getUserResponseByAccessTokenRequestOptions(string $myParam): array
{
    return array_merge(parent::getUserResponseByAccessTokenRequestOptions($myParam), [
        'myValue' => '123'
    ]);
}
 И не заботится о замене имени метода внутри метода, если я хочу изменить его.
Возможно, пропустить поздние привязки таким образом. Если класс B расширяет класс A: METHOD всегда возвращает часть "Class ::", относящуюся к A ("A :: methodName")
Решение: static :: class. "::". ФУНКЦИЯ
Таким образом, вы получаете ссылку на класс для текущего рабочего класса ("B :: methodName")
Почему вы не можете сделать это?
public function something() {
    $thisMethodName = "something";
}