在 php 中访问 <<
发布于 2024-10-21 04:38:40 字数 1054 浏览 2 评论 0 原文

我试图弄清楚在 php.ini 中使用 << 时如何使用已定义的变量。 这是我想要实现的示例:

<?php
define('TEST','This is a test');
echo <<<HTML
Defined: {TEST}
HTML;
?>

<< 中获取定义的“TEST”的适当方法是什么?

编辑:
我做了一个小测试来检查哪种方法最快。 在我的测试中,我在heredoc中使用了20个变量。以下是使用不同方法所发生的情况(以秒为单位):
访问 php 中<<的 HTML 中定义的变量< /a> 似乎是最慢的方法 - 0.00216103。
访问 php 中的 < 更快 - 0.00073290。
访问 php 中的 < 甚至更快 - 0.00052595。
访问 php 中的 < 是最快的 - 0.00011110。

希望这对其他人有帮助:)

I'm trying to figure out how to use a defined variable when using <<<HTML in php.
This is an example of what I want to achieve:

<?php
define('TEST','This is a test');
echo <<<HTML
Defined: {TEST}
HTML;
?>

What's the appropriate way of getting the defined "TEST" inside the <<<HTML ?

Edit:
I did a small test to check which one of the methods is the fastest.
For my test I used 20 variables inside heredoc. Here is what happened with the different methods (in seconds):
Accessing defined variable inside <<<HTML in php seems to be the slowest way of doing it - 0.00216103.
Accessing defined variable inside <<<HTML in php is faster - 0.00073290.
Accessing defined variable inside <<<HTML in php is even faster - 0.00052595.
Accessing defined variable inside <<<HTML in php is the fastest - 0.00011110.

Hope this helps somebody else :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

忘年祭陌 2024-10-28 04:38:40

恐怕这并不漂亮,但是......

define('TEST','This is a test');

var $defined = TEST;

echo <<<HTML
Defined: {$defined}
HTML;

至少据我所知,没有一种在该上下文中直接使用定义值的方法,您需要使用变量。

It's not pretty I'm afraid, but ...

define('TEST','This is a test');

var $defined = TEST;

echo <<<HTML
Defined: {$defined}
HTML;

There isn't, so far as I'm aware at least, a way of using defined values directly in that context, you need to use a variable.

つ可否回来 2024-10-28 04:38:40

这是我在php手册的注释中找到的一个方法: http:// www.php.net/manual/en/function.define.php#100449

这有点复杂,但应该可以工作。

<?php
define('TEST','This is a test');

$cst = 'cst';
function cst($constant){
    return $constant;
}

echo <<<HTML
Defined: {$cst(TEST)}
HTML;

如果要包含多个定义的常量,这比手动将大量变量分配给常量的值更好。

Here's a method I found in the notes on the php manual: http://www.php.net/manual/en/function.define.php#100449

It's a little convoluted, but it should work.

<?php
define('TEST','This is a test');

$cst = 'cst';
function cst($constant){
    return $constant;
}

echo <<<HTML
Defined: {$cst(TEST)}
HTML;

If you have multiple defined CONSTANTS to include, this would be better than manually assigning lots of variables to the value of constants.

云雾 2024-10-28 04:38:40

您可以创建一个充当常量访问器的类:

class DefineAccessor {
    function __get($name) {
        if (defined($name))
            return eval('return ' . $name . ';');
    }
}

创建它的一个实例以便能够在 Heredoc 中使用它:

$defines = new DefineAccessor;

然后像这样使用它:

echo <<<HTML
Defined: $defines->TEST
HTML;

You can create a class that acts like an accessor to constants:

class DefineAccessor {
    function __get($name) {
        if (defined($name))
            return eval('return ' . $name . ';');
    }
}

Create an instance of it to be able to use it in heredoc:

$defines = new DefineAccessor;

And then use it like this:

echo <<<HTML
Defined: $defines->TEST
HTML;
逆夏时光 2024-10-28 04:38:40

你不能。将其值分配给实数变量。

You can't. Assign its value into a real variable.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文