Как определить глобальную функцию, которая будет доступна с любой страницы?Как определить глобальные функции в PHP
ответ
В include.php:
function myGlobalFunction() {
// do someting
}
Тогда на каждой странице вы хотите использовать:
include 'include.php';
myGlobalFunction();
Вставьте его в комплект, затем включите его.
Вы можете объявить функцию внутри функции, быть осторожным, чтобы вызвать только внешнюю функцию один раз или вы получите сообщение об ошибке.
class MyClass {
function declareGlobalsFn() {
// functions declared inside a function have global scope
function globalfn1() {echo "fn1";}
function globalfn2() {echo "fn2";}
}
}
$ob = new MyClass();
$ob->declareGlobalsFn();
globalfn1(); // fn1
globalfn2(); // fn2
Вау, это для меня новый способ создания функций. Это хороший вопрос для экзамена PHP. Выполняется ли этот код или нет? Это закрытие или нет? :-) Можете ли вы сказать мне, когда это лучшая практика? Насколько я могу видеть, выполнение включает или требует ту же функцию, но последние два лучше подходят для обслуживания. Во всяком случае, к лучшему или к худшему вы узнали меня. Вот почему я поддержал ваш ответ. Хотя никто из вас не ответил на этот вопрос. Этот ответ просто: все функции, которые не являются членами класса, имеют глобальную область видимости. –
Я не вижу веских оснований для определения функций таким образом. Среди прочего, 'declareGlobalsFn()' нельзя вызывать дважды, или вы получаете: 'PHP Неустранимая ошибка: не удается переопределить globalfn1()' –
Это тоже ново для меня. Существует одна очень веская причина: вы можете комбинировать декларацию с наследованием посредством 'call parent :: declareGlobalsFn()' и избегать ошибки [проверки наличия] (http://php.net/manual/de/function.function- есть.php) сначала. – Robert
Если вы хотите, чтобы ваша функция всегда доступна, не включая его, сделайте следующее:
Создайте свою функцию в файле PHP.
В этой категории php.ini для опции
auto_prepend_file
и добавить свой файл PHP в эту строку, например:auto_prepend_file = "/path/to/my_superglobal_function.php"
Или, если вы пишете с не абсолютным путем, как это:
auto_prepend_file = "my_superglobal_function.php"
это будет выглядеть в вашем include_path
в php.ini
, чтобы найти файл.
Полезно знать!Это может быть очень удобно в некоторых ситуациях! – BrainStone
Это должен быть принятый ответ, потому что он решает проблему для ** любой страницы **. –
Это не лучшее решение, потому что вы (или другие люди, которые даже не знают об этом) должны изменить каждую среду, в которой используется ваша заявка. – Lambrusco
Then in every page you want to use it:
include 'include.php'; myGlobalFunction();
-
Put it in an include, then include it.
Это технически не может быть правильным, в зависимости от контекста.
«Страница» может восприниматься как «файл», например «Вы должны включить файл функции в каждый файл, который хотите использовать функцию».
Как только функция определена в вашей программе, к ней можно получить доступ из любого места, перемещаясь вперед, пока программа не завершит выполнение.
Скажем у вас есть это:
index.php:
<?php
function echo_1() {
echo 1;
}
echo_1();
require 'boot.php';
boot.php
<?php
include_once 'page.php';
echo_1();
echo_9342949();
страница.PHP
<?php
function echo_9342949() {
echo 9342949;
}
echo_1();
При том, что ваш выход будет 1119342949
.
Конечно, когда вы говорите «страница», вы можете буквально означать прямой доступ к автономному «страницам», и в этом случае ответов от других пользователей будет достаточно. Однако, если вы хотите использовать одну и ту же функцию из разных мест в своей программе, просто определите ее, прежде чем намереваться использовать ее, и вы можете получить к ней доступ в любом месте, перемещаясь вперед независимо от области видимости.
Edit:
However, if you're looking to use the same function from different locations throughout your program, simply define it before you intend to use it and you can access it anywhere moving forward regardless of scope.
Чтобы исправить себя, это, конечно, не относится к вещам, как функций класса, но и для обычных функций это остается верным.
Чтобы развернуть на luarwo's answer, вы можете объявить функцию в своем конструкторе класса. Это может сделать ваш класс своего рода библиотекой функций, где функции доступны с любой страницы, где вы создаете экземпляр класса.
Sandbox \ MyGameLib
<?php
namespace Sandbox;
class MyGameLib {
public function __construct() {
if (!function_exists('loveGame')) {
function loveGame($game) {
print "The game $game is awesome";
}
}
}
}
Качели
<?php
namespace Seesaw;
use Sandbox\MyGameLib;
$m = new MyGameLib();
loveGame('Tempest');
The game Tempest is awesome
Это фактически неверно, поскольку функция не будет глобальной, а частью пространства имен «Песочница». – andig
- 1. Как определить глобальные функции с помощью Laravel
- 2. определить глобальные переменные и функции в build.gradle
- 3. PHP глобальные $ дб вызов в функции
- 4. Как определить глобальные имена?
- 5. Как определить глобальные переменные?
- 6. Как определить глобальные массивы?
- 7. PHP, объявляющий глобальные переменные в функции
- 8. Глобальные переменные PHP
- 9. Дженкинс глобальные функции
- 10. Должен ли яменовать глобальные функции в PHP?
- 11. Как расширить глобальные названные функции в машинописном
- 12. Глобальные функции
- 13. определить переменные в заголовке вместо функции (не глобальные) в C
- 14. Определить глобальные переменные рельсы
- 15. Определить глобальные параметры
- 16. Глобальные функции в javascript
- 17. Как определить глобальные переменные для Symfony2 Controller?
- 18. Глобальные функции в Aurelia
- 19. Глобальные функции в angularJS
- 20. Где определить глобальные функции в ExtJS 5 MVVM? 1
- 21. Где поставить пользовательские глобальные функции в CakePHP?
- 22. определить глобальные параметры в android
- 23. Определить глобальные переменный в JQuery
- 24. Как определить глобальные переменные в жидкости?
- 25. Как определить глобальные свойства в CQ5
- 26. Как определить глобальные переменные в flash cs5.5?
- 27. определить глобальные переменные в функции и перейти к классу
- 28. Где я могу определить глобальные функции в ExtJS 4 MVC?
- 29. Как глобальные функции определены в Swift?
- 30. Определить переменную в функции php
Что бы быть иначе? – Sussagittikasusa
@suss - не знаю, с моей головы, зачем вам это нужно? – Robert
Все в порядке, его дополнительная строка, но она отлично работает:]. – Sussagittikasusa