Довольно просто, константа name
не определена.То, что вы определили, является константой класса .Вы можете получить к нему доступ через:
Bar::name
или из класса Bar
или любого из его потомков
self::name
или из класса Bar
или любого из егопотомки только с 5.3+:
static::name
Итак, измените вызов на:
public static function f2() {
Foo::f1(self::name);
}
И это должно сделать это для вас ...
О, иеще одно примечание.Как правило, соглашение об именах таково, что все константы должны быть в верхнем регистре.Таким образом, оно должно быть const NAME = 'leo';
, а ссылка на него должна быть self::NAME
.У вас нет , чтобы сделать это таким образом, но я думаю, что это помогает читабельности ...