我想定义这样的东西 php:

$EL = "\n<br />\n";

然后在我的网站上使用该变量作为“结束线”标记,如下所示:

echo "Blah blah blah{$EL}";

如何定义 $EL 一次(仅在 1 个文件中),将其包含在我网站的每个页面上,以及 不是 必须使用(奇怪地向后)引用它 global $EL; 在每个页面函数中声明?

有帮助吗?

解决方案

大多数 PHP 网站都应该有一个文件(我称之为标头),您可以将其包含在网站的每个页面上。如果将第一行代码放入头文件中,则将其包含在每个页面上,如下所示:

 include 'header.php';

您不必使用 global 关键字或任何东西,您编写的第二行代码应该可以工作。

编辑:哦,抱歉,这在函数内部不起作用......现在我看到你的问题了。

编辑#2:好的,接受我对标题的最初建议,但是使用 定义() 而不是一个变量。这些在被包含后在函数内部工作。

其他提示

听起来像是常量的工作。查看功能 定义().

你用的是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
}
?>

在我看来,调用类或在函数中包含变量以及 out 是很多不需要完成的工作,并且,如果可能的话,最好避免此类情况。

做这个 define ('el','\n\<\br/>\n'); 将其另存为 el.php

然后你可以包含你想要使用的任何文件,即

echo '某事'.el;// 注意我只是在行尾或前面添加 el

希望这有帮助

注意,请删除 < br 之后的 '\',因为我必须将其放入,否则它不会在答案中显示 br 标记...

@svec 是的,您只需将文件也包含在函数中即可。这就是我的大多数软件的工作原理。

function myFunc()
 {
require 'config.php';
//Variables from config are available now.
 }

另一种选择是使用具有公共静态属性的对象。我曾经使用 $GLOBALS 但大多数编辑器不会自动完成 $GLOBALS。此外,未实例化的类随处可用(因为您可以在任何地方实例化,而无需告诉 PHP 您将使用该类)。例子:

<?php

class SITE {
    public static $el;
}

SITE::$el = "\n<br />\n";

function Test() {
    echo SITE::$el;
}

Test();

?>

这将输出 <br />

这也比常量更容易处理,因为您可以在属性中放置任何类型的值(数组、字符串、整数等),而常量不能包含数组。

这是由一位用户向我建议的 PhpEd 论坛.

svec,使用PHP框架。只要有——那里有很多。这是正确的做法。使用Framework,您可以使用一个用于应用程序的单个入口点,因此定义范围内的变量很容易自然。另外,您不需要关心包括标头文件或检查用户是否在每个页面上登录 - 不错的框架将为您完成。

看:

投入一些时间学习其中一项,很快就会得到回报。

IIRC 一个常见的解决方案是一个包含声明的纯文件,您可以将其包含在每个源文件中,例如'常量.inc.php'。在那里,您可以定义一堆应用程序范围的变量,然后将它们导入到每个文件中。

不过,您必须在中提供 include 指令 每一个 您使用的单个源文件。我什至看到一些项目使用这种技术来提供多种语言的本地化。我更喜欢 gettext 方式,但也许这种变体对于普通用户来说更容易使用。

编辑 对于你的问题我建议使用 $全局变量[], , 看 例子#2 了解详情。

如果这仍然不适用,我会尝试挖掘 PHP5 对象并创建一个提供所需静态常量的静态单例(http://www.developer.com/lang/php/article.php/3345121)

如果数据是特定于用户的,那么会话将是您最好的选择,否则只需使用 conifg 文件。配置.php:

<?php
$EL = "\n<br />\n";
?>

然后在每个页面添加

require 'config.php'

您将能够在该页面上访问 $EL。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top