Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Имя рекурсивной функции
 
 автор: Yuriev   (05.02.2015 в 13:43)   письмо автору
 
 

Есть рекурсивный вызов
function name() {
   //тут много строк кода
   name() 
   //тут много строк кода
}
Что можно написать внутри функции вместо name, чтобы не пришлось искать и изменять name в случае переименования функции в первой строке

  Ответить  
 
 автор: psychomc   (05.02.2015 в 13:59)   письмо автору
 
   для: Yuriev   (05.02.2015 в 13:43)
 

немного странный вопрос. дело в том, что функции обычно не переименовывают. какой смысл? лучше сразу её назвать правильно и забыть. во вторых, даже если её и переименовывать, поиск места вызова никакого труда не составит, любая современная IDE подстветит ошибку вызова несуществующей функции и подсветит само место вызова просто при клике на название функции.
но вообще, если вы настаиваете, то можно вот так например:

<?php
function name() { 
   
//тут много строк кода 
    
$function __FUNCTION__;
    
$function();
   
//тут много строк кода 
}

  Ответить  
 
 автор: artem01   (05.02.2015 в 13:59)   письмо автору
 
   для: Yuriev   (05.02.2015 в 13:43)
 

а можно код всей функции?

  Ответить  
 
 автор: lightning.say   (05.02.2015 в 14:22)   письмо автору
 
   для: Yuriev   (05.02.2015 в 13:43)
 

так вызов происходит как раз по имени функции, значит меняя имя надо менять и в местах ее вызова. Даже если и есть такой способ то вам придется сейчас менять все вызовы в теле name на это значение, вы что так часто переименовываете функции?

  Ответить  
 
 автор: Yuriev   (06.02.2015 в 10:35)   письмо автору
 
   для: Yuriev   (05.02.2015 в 13:43)
 

Почему-то так
function name() {
$function = __FUNCTION__;
$function();
}
не работало раньше, а теперь работает.
Наверно писал с какой-нибудь ошибкой.

Спасибо за советы

  Ответить  
 
 автор: psychomc   (06.02.2015 в 11:05)   письмо автору
 
   для: Yuriev   (06.02.2015 в 10:35)
 

это просто пример. не делайте лучше так

  Ответить  
 
 автор: Yuriev   (06.02.2015 в 11:53)   письмо автору
 
   для: psychomc   (06.02.2015 в 11:05)
 

А почему не рекомендуется так делать?
Код функции не показываю потому, что функций несколько и в них много-много строк

  Ответить  
 
 автор: psychomc   (06.02.2015 в 13:26)   письмо автору
 
   для: Yuriev   (06.02.2015 в 11:53)
 

см. мой 1й пост

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования