- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Насколько правильна с точки зрения рекурсии данная функция?
Вроде, все ок.
В 4-ке только работать не будет.
Код рабочий 100%. Имелось ввиду работоспособность с точки зрения алгоритма.
Сам спросил, сам ответил :)
http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D1%8F#.D0.A0.D0.B5.D0.BA.D1.83.D1.80.D1.81.D0.B8.D1.8F_.D0.B2_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B8
Имеем дело с хвостовой рекурсией, поэтому для оптимизации интерпретатором правильнее так:
А еще лучше так:
По моему нет.
Это упрощенный вариант вида
А это уже получается 2 точки возврата из функции. При наличии 1, функция будет оптимизирвана интерпретатором.
Нет, не правильно вы рассуждаете. Это в вашем случае 2 точки возврата, в моем одна. Более того, без использования циклов и присваиваний (конечно array_map делает цикл, но на более низком уровне). Вообще говоря конструкция ?: эффективней if-else.
Kolyaj правильно все сказал. И его функция будет работать быстрее.
Нет, не правильно вы рассуждаете. Это в вашем случае 2 точки возврата, в моем одна.
это как? :) тоже две. Визуально одна - фактически две.
А это уже получается 2 точки возврата из функции. При наличии 1, функция будет оптимизирвана интерпретатором.
оптимизирована в плохую сторону. Расчет алгоритма думаю приводить не надо? :)
Почему в плохую сторону? Можно поподробнее, пожалуйста.
Почему в плохую сторону? Можно поподробнее, пожалуйста.
потому что у Kolyaj функция stripsl() всегда заканчивает свою работу, при вызове самой себя. А у вас нет. И когда дойдем до конца рекурсии и начнем возвращать результаты у вас будет происходить сначала выход из цикла foreach и if и далее return $str. А над $str мы никаких действий не производим и делаем return того, что получили в фактическом параметре функции. Это алгоритмическая ошибка.
Дебаггера нету - там бы все четко было видно при трейсинге.
это как? тоже две. Визуально одна - фактически две.
и визуально и фактически одна. Так как сначала вычисляется выражение ?:, потом возвращается значение этого выражения.
Для наглядности можно так:
что то же самое, но с использованием промежуточной переменной.