如何定义可从任何页面访问的全局函数?
答案 0 :(得分:37)
在include.php中:
function myGlobalFunction() {
// do someting
}
然后在每个页面中你想要使用它:
include 'include.php';
myGlobalFunction();
答案 1 :(得分:34)
你可以在函数内声明一个函数,小心只调用一次外部函数,否则你会收到错误。
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
答案 2 :(得分:31)
如果您希望您的功能始终可用,而不包括它,请执行以下操作:
在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
中找到该文件。
答案 3 :(得分:2)
将它放入包含中,然后包含它。
答案 4 :(得分:1)
然后在每个页面中你想要使用它:
include 'include.php'; myGlobalFunction();
-
将它放入包含中,然后包含它。
此技术上可能不正确,具体取决于具体情况。
'Page'可以被视为'文件',例如“您必须在要使用该功能的每个文件中包含该函数的文件”。
一旦在程序中定义了一个函数,就可以从前进的任何地方访问它,直到程序执行完毕。
说你有这个:
<强>的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
。
当然,当您说“页面”时,您可能只是指直接访问的独立“页面文件”,在这种情况下,来自其他用户的答案就足够了。但是,如果您希望在整个程序中使用来自不同位置的相同功能,只需在打算使用它之前定义它,并且无论范围如何都可以在任何地方进行访问。
编辑:
但是,如果您希望使用不同的相同功能 整个程序中的位置,只需在您打算之前定义它 使用它,你可以随时随地访问它,无论如何 范围。
为了纠正自己,这当然不适用于类函数之类的东西,但对于普通函数,这仍然是正确的。
答案 5 :(得分:0)
要展开luarwo's 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');
暴风雨游戏很棒