@haps

PHP 7 debug_backtrace проблема, как решить?

Жил не тужил на PHP 5.5. Решил перейти на 7.1. И тут же вылезла проблема с debug_backtrace'ом.

Суть в чем: реализовал я свой Enum (примеры). Чтобы узнать класс вызова использовал debug_backtrace при статическом вызове неизвестного метода. в PHP 5 все нормально, класс вызова есть, 7.1 нет.

Пример:
abstract class A {
	public static function __callstatic($name, $arguments) {
		print_r(debug_backtrace());
	}
}
class B extends A {
}
B::foo();


PHP 5.5:
Array
(
    [0] => Array
        (
            [file] => E:\sites\apico-sms\scripts\other\trace.php
            [line] => 12
            [function] => __callstatic
            [class] => A
            [type] => ::
            [args] => Array
                (
                    [0] => foo
                    [1] => Array
                        (
                        )

                )

        )

    [1] => Array
        (
            [file] => E:\sites\apico-sms\scripts\other\trace.php
            [line] => 12
            [function] => foo
            [class] => B
            [type] => ::
            [args] => Array
                (
                )

        )
)

PHP 7.1:
Array
(
    [0] => Array
        (
            [file] => E:\sites\apico-sms\scripts\other\trace.php
            [line] => 12
            [function] => __callstatic
            [class] => A
            [type] => ::
            [args] => Array
                (
                    [0] => foo
                    [1] => Array
                        (
                        )

                )

        )

)


Вопрос. Можно ли каким-нибудь образом в 7.1 получить имя класса B, как это получалось в 5.5?
  • Вопрос задан
  • 254 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы