Ответ 1
В include.php:
function myGlobalFunction() {
// do someting
}
Затем на каждой странице вы хотите его использовать:
include 'include.php';
myGlobalFunction();
Как определить глобальную функцию, которая будет доступна с любой страницы?
В include.php:
function myGlobalFunction() {
// do someting
}
Затем на каждой странице вы хотите его использовать:
include 'include.php';
myGlobalFunction();
Если вы хотите, чтобы ваша функция всегда была доступна, не включая ее, сделайте следующее:
Создайте свою функцию в файле 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
, чтобы найти файл.
Вы можете объявить функцию внутри функции, будьте осторожны, чтобы вызвать внешнюю функцию только один раз, или вы получите сообщение об ошибке.
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
Поместите его в include, затем включите его.
Затем на каждой странице вы хотите его использовать:
include 'include.php'; myGlobalFunction();
-
Поместите его в include, затем включите его.
Это технически может быть неправильным, в зависимости от контекста.
"Страница" может восприниматься как "файл", например "Вы должны включить файл функции в каждый файл, который хотите использовать функцию".
Как только функция определена в вашей программе, к ней можно получить доступ из любого места, перемещая вперед, пока программа не закончит выполнение.
Скажите, что у вас есть это:
index.php
<?php
function echo_1() {
echo 1;
}
echo_1();
require 'boot.php';
boot.php
<?php
include_once 'page.php';
echo_1();
echo_9342949();
page.php
<?php
function echo_9342949() {
echo 9342949;
}
echo_1();
При этом ваш результат будет 1119342949
.
Конечно, когда вы говорите "страница", вы можете буквально означать автономный "файл страницы" с прямым доступом, и в этом случае ответов от других пользователей будет достаточно. Однако, если вы хотите использовать одну и ту же функцию из разных мест в своей программе, просто определите ее, прежде чем намереваться использовать ее, и вы сможете получить доступ к ней в любом месте, перемещаясь вперед, независимо от области действия.
Edit:
Однако, если вы хотите использовать одну и ту же функцию из разных местоположения во всей вашей программе, просто определите это, прежде чем будете намереваться использовать его, и вы можете получить к нему доступ в любом месте, независимо от того, сфера.
Чтобы исправить себя, это, конечно, неверно для таких вещей, как функции класса, но для нормальных функций это остается верным.
Чтобы расширить luarwo answer, вы можете объявить функцию прямо в своем конструкторе класса. Это может сделать ваш класс своего рода библиотекой функций, где функции доступны с любой страницы, где вы создаете экземпляр класса.
Песочница \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');
Игра Tempest удивительна