@phpcoder81

Можно ли использовать простые функции внутри класса?

Собственно, вопрос в заголовке)

Бывает так, что нужно по быстрому получить значение. Например недавно использовал функцию number2string($number). Нужно было получить число в виде текста. Добавлять функцию в данный класс не хотелось.

Можно иногда так делать?
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 5
FanatPHP
@FanatPHP
Чебуратор тега РНР
Да, можно.
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Сделайте статический класс хелпер и вынесите туда все ваши функции.
Ответ написан
Комментировать
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Лучше так не делать - лишние зависимости ни к чему.
Ответ написан
Комментировать
@Mysterion
По описанию подходит решение в виде создания статического класса, в котором будут вспомогательные методы.
Ответ написан
php666
@php666
PHP-макака
Лучшее решение - каждую такую функцию сделать статическим методом классов-помощников, при этом классы делать по функционалу - классы для работы со строками, с массивами, с числами.
"Чистые" функции в ОО-приложении - это отвратительно.
И причин тут много: это идеологически правильно с точки зрения ООП, можно использовать пространства имеy и автолоад. В конечном итоге, можно даже создать свой, базовый тип, когда инстанцирование класса типа MyString позволяет инкапсулировать всю логику, если она сложная. Например, мы хотим использовать в качестве шаблонизатора сам PHP. Моно сделать хэлпер, который будет фактически являться объектом типа "строка" с нужным нам набором методов. Допустим, мы делаем вывод пользовательского сообщения:

<div>
<?
$value = new MyString($message);
// делаем html_entity_decode, потом htmlspecialchars, потом nl2br, потом форматируем bb-теги и получаем значение. 
echo $value->entityDecode()->hsc()->nl2br()->bb()->getValue();
?>
</div>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
25 апр. 2024, в 19:22
18000 руб./за проект
25 апр. 2024, в 19:21
10000 руб./за проект
25 апр. 2024, в 18:47
2795100 руб./за проект