Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 17

Функции в php вместо self-executing functions в js

08.05.2017, 09:44. Показов 1413. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В ПХП , кажется, нет пока стопроцентного аналога self-executing functions из Джаваскрипт:

Code
1
2
3
(function(){
    //Bunch of code...
})();
-конструкции, которую удобно использовать для изоляции имен переменных.

Но вместо нее в ПХП можно использовать обычные функции.
Например есть код
Code
1
2
3
4
5
6
7
.....
.....
 
хотим добавить код здесь
 
.....
.....

и мы для изоляции переменных (чтобы не создавать новых глобальных переменных и чтобы не использовать переменные сверху или снизу по коду) можем написать такое:

Code
1
2
3
4
5
6
7
8
9
10
11
12
.....
.....
 
function isolatingFunction($money,$time) {
....logic 
         }
         
isolatingFunction();
 
 
.....
.....
Теперь все переменные внутри isolatingFunction не смешиваются с переменными внизу/вверху (конечно, если мы сами того не захотим, объявив переменные глобальными).

Некоторый минус этого подхода это то, что имя функции isolatingFunction теперь занято, и не видно способа функцию уничтожить. Т.е. если мы внизу по коду захотим использовать этот изолирующий способ, то придется давать новое имя функции.

Немного модифицированный подход это
Code
1
2
3
4
5
6
7
8
9
10
11
12
.....
.....
 
$isoVar = function ($money,$time) {
....logic 
         };
         
$isoVar($m,$t);
 
 
.....
.....
При таком подходе можно выделить одну глобальную переменную на всю программу и не создавать новые функции все время.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.05.2017, 09:44
Ответы с готовыми решениями:

Как заново активировать функции из functions.php
После переноса сервера сайта перестали функционировать функции из раздела functions.php: вывод публикаций в топ и т.д. Они там прописаны...

Вызов функции из файла functions.php wordpress
Всем привет. Хочу при нажатии на ссылку( вот код<li><a class="btn-warning btn btn-sm" href="#">Last day <b class="badge"...

Не работает if в functions.php
Коллеги нужна помощь, столкнулся с проблемой. Нужно сделать так, чтобы на страницах записей от определенной категории WP не создавал...

9
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.05.2017, 10:29
Цитата Сообщение от Valen007 Посмотреть сообщение
В ПХП , кажется, нет пока стопроцентного аналога self-executing functions из Джаваскрипт
PHP
1
(function () { echo 'Hello World'; })();
http://ideone.com/HxaRws
Не надо js подходы применять в php
0
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 17
08.05.2017, 11:07  [ТС]
Цитата Сообщение от Jewbacabra Посмотреть сообщение
PHP
1
(function () { echo 'Hello World'; })();
http://ideone.com/HxaRws
Не надо js подходы применять в php
У меня не работает

Code
1
(function () { echo 'Hello World'; })();
Parse error: syntax error, unexpected '('
PHP Version 5.5.9-1ubuntu4.17
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.05.2017, 11:50
Лучший ответ Сообщение было отмечено Valen007 как решение

Решение

Цитата Сообщение от Valen007 Посмотреть сообщение
PHP Version 5.5.9
PHP
1
call_user_func(function() { echo 'Hello World'; });
1
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 17
08.05.2017, 11:57  [ТС]
Code
1
call_user_func(function() { echo 'Hello World'; });
работает
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
08.05.2017, 12:02
зачем изобретать велосипеды, если есть пространства имен?
1
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 17
08.05.2017, 12:18  [ТС]
Может быть несколько пространств имен в одном файле?
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
08.05.2017, 12:24
Valen007, вы вообще читаете что вам кидают? Там в содержании в 4 пункте написано про это.
А вообще это не очень хорошая практика.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
08.05.2017, 12:29
tarasalk, имхо, все лучше использования замыканий и т.п. а-ля "как в javascript".
0
0 / 0 / 0
Регистрация: 10.10.2015
Сообщений: 17
08.05.2017, 12:41  [ТС]
Читать все что мне посылают нет никакой возможности.
Само-исполняющиеся функции не оч хорошая практика?

Добавлено через 10 минут
Настоятельно не рекомендуется при программировании комбинировать несколько пространств имен в один файл. Основным применением этому может быть объединение нескольких PHP файлов в один файл.
с сайта ПХП
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2017, 12:41
Помогаю со студенческими работами здесь

Functions.php из index.html
Кто нибудь подскажет, как правильно вытащить functions из index.html в отдельный файл functions.php? Т.е. что нужно дописать, что бы...

Wordpress не видит класс с functions.php
Здравствуйте! написал в functions.php класс: class PaypalIPN { /** * @var bool $use_sandbox Indicates if the...

Изменение add_filter плагина в functions.php шаблона
Есть плагин в файле которого есть фильтр: add_filter('the_content', 'irp_the_content', 99999); function irp_the_content($content) {..}...

Слетают стили после применения хука в functions php
function footer_enqueue_scripts() { # Удаляем JavaScript из заголовка remove_action('wp_head', 'wp_print_scripts'); ...

Вывод кода из functions.php в плагин. Пожалуйста отзовител
Ребята, мучаюсь четвертые сутки с кодом. Буду очень благодарен если поможете. Короче, вот функция которая вставляется в функшн.пшп...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru