我想在 php 中定义类似的内容:
$EL = "\n<br />\n";
然后在我的网站上使用该变量作为“endline”标记,如下所示:
echo "Blah blah blah{$EL}";
如何定义$ EL一次(仅在1个文件中),将其包含在我网站的每个页面上,而不必须使用(奇怪的向后)global $EL;
来引用它每个页面函数中的语句?
答案 0 :(得分:6)
大多数PHP站点都应该有一个文件(我称之为标题),您在网站的每个页面上都包含该文件。如果您将第一行代码放在头文件中,那么在每个页面上都包含它:
include 'header.php';
你不必使用全局关键字或任何东西,你编写的第二行代码应该可以工作。
编辑:哦对不起,这在函数内部不起作用......现在我看到了你的问题。
编辑#2:好的,请使用标题获取我的原始建议,但使用define()而不是变量。这些工作包含在函数内部。
答案 1 :(得分:3)
听起来像一个常数的工作。请参阅函数define()。
答案 2 :(得分:1)
您使用的是PHP5吗?如果定义__autoload()函数并使用带有一些常量的类,则可以在需要它们的地方调用它们。唯一令人恼火的是你必须输入一些更长的东西,比如
MyClass::MY_CONST
好处是,如果你决定改变处理新线的方式,你只需要在一个地方改变它。
当然,一个可能的否定是你正在调用包含额外函数(__autoload()),运行该函数(当你引用类时),然后加载另一个文件(你的类文件)。这可能比它的价值更高。
如果我可以提供建议,那就是避免这种需要回显标签的回声(如<br />
)。如果你可以设置一些模板式的东西,你可以处理nl而不必明确地输入它们。而不是
echo "Blah Blah Blah\n<br />\n";
尝试:
<?php
if($condition) {
?>
<p>Blah blah blah
<br />
</p>
<?php
}
?>
在我看来,在调用类或在函数内部包含变量以及外部需要做很多工作,而且,如果可能的话,最好避免这些情况。
答案 3 :(得分:1)
这样做
define ('el','\n\<\br/>\n');
将其保存为el.php
然后您可以包含您要使用的任何文件,即
回声'某事'。 //注意我只是在行尾或前面添加el希望这个帮助
注意请在&lt;之后删除'\'因为我必须把它放进去或者它不会在答案上显示br标签......
答案 4 :(得分:0)
@svec是这样,你只需要在函数中包含文件。这就是我的大多数软件的工作方式。
function myFunc()
{
require 'config.php';
//Variables from config are available now.
}
答案 5 :(得分:0)
另一种选择是使用具有公共静态属性的对象。我以前使用$ GLOBALS,但大多数编辑都不会自动完成$ GLOBALS。此外,无实例化的类在任何地方都可用(因为您可以在不知道PHP将要使用该类的情况下在任何地方进行实例化)。例如:
<?php
class SITE {
public static $el;
}
SITE::$el = "\n<br />\n";
function Test() {
echo SITE::$el;
}
Test();
?>
这将输出<br />
这比costants更容易处理,因为你可以在属性中放置任何类型的值(数组,字符串,int等),而常量不能包含数组。
这是由PhpEd forums上的用户向我建议的。
答案 6 :(得分:0)
svec,使用PHP框架。任何 - 那里有很多。 这是正确的方法。使用框架,您可以单独输入 为您的应用程序指出,因此定义站点范围的变量很容易 自然。此外,您不需要关心包含头文件 检查用户是否在每个页面上登录 - 体面的框架都可以 它适合你。
请参阅:
花一些时间学习其中一个,它很快就能收回。
答案 7 :(得分:0)
您可以使用auto_prepend_file directive来预解析文件。将指令添加到您的配置中,并将其指向您的包含路径中的文件。在该文件中添加常量,全局变量,函数或您喜欢的任何内容。
因此,如果您的前置文件包含:
<?php
define('FOO', 'badger');
在另一个Php文件中,您可以访问常量:
echo 'this is my '. FOO;
答案 8 :(得分:0)
您可以考虑使用框架来实现这一目标。更好的是您可以使用
Include 'functions.php';
require('functions');
进行OOP是另一种选择
答案 9 :(得分:-1)
IIRC一个常见的解决方案是一个普通文件,其中包含您在每个源文件中包含的声明,例如' constants.inc.php '。在那里,您可以定义一组应用程序范围的变量,然后在每个文件中导入。
但是,您必须在您使用的每个单个源文件中提供include指令。我甚至看到一些使用这种技术的项目为多种语言提供本地化。我更喜欢gettext方式,但也许这个变体更容易为普通用户使用。
修改对于您的问题,我建议使用 $ GLOBALS [] ,有关详细信息,请参阅Example #2。
如果仍然不适用,我会尝试挖掘PHP5对象并创建一个提供所需静态常量的静态Singleton(http://www.developer.com/lang/php/article.php/3345121)
答案 10 :(得分:-1)
如果数据是用户特定的,那么会话将是您最好的选择,否则只需使用conifg文件。 config.php中:
<?php
$EL = "\n<br />\n";
?>
然后在每个页面上添加
require 'config.php'
您将能够访问该页面上的$ EL。