Вы не можете непосредственно отдельные функции в пределах одного класса в различных эталонных трактов на основе имени класса, как это. Ближайшей доступной вещью будет использование пространств имен (доступно с PHP 5.3+) и создание нескольких классов в вашем пространстве имен, каждый со своим набором функций. Пример:
namespace className;
class food {
static function fruit() {
}
}
Назвали бы по
className\food::fruit('lemon');
Это не имеет смысла называть имен «Classname» - используется только, чтобы соответствовать вашему примеру.
Пространства имен могут иметь много уровней вложенности, если вам нужно больше уровней группы.
Обратите внимание, что это принципиально отличается от вашего примера, так как это приведет к нескольким классам для достижения группировки функций в соответствии с вашим примером, где, я думаю, вы ищете аналогичное решение, но только с одним классом - невозможно.
Обратите внимание, что это отличается от других ответов, показывающих наследование, поскольку они предоставляют разные местоположения группировки для определения функций, но не позволяют четко различать способы ссылки на существующий объект или статически из самого класса.
Более подробная информация здесь: http://php.net/namespaces
Примечание - я думаю, что наследование будет правильным способом пойти основываясь на вашем примере кода - пространств имен не звучат как хорошо подходят для примера, приведенного - однако, если вы хотите «подклассы», как указано в вашем вопросе, могут быть ближе к тому, что вы ищете.
Комбинация двух, вероятно, даст лучший результат (и это очень распространенная практика).
Вы можете расширить свой класс с другого. Класс a расширяет b ... тогда класс b имеет доступ к методам: s. Расширение цепей может быть настолько глубоким, насколько вы хотите. – makallio85