如何在 PHP 中返回常量或文本字符串——eval() 是正确的方法

发布于 2024-11-03 02:20:50 字数 392 浏览 0 评论 0原文

我在 mysql 表中有一行,其列包含:

This is a test.

我在同一个 mysql 表中有另一行,其同一列包含:

K_IM_A_CONSTANT

早些时候在 PHP 脚本中,存在这行代码:

define(K_IM_A_CONSTANT, 'This is a constant.');

如何回显该列的内容,返回的值可能是“这是一个测试”。或“这是一个常数。”,取决于所选的行?

eval() 是这样做的方法吗?如果是这样,eval() 语法会是什么样子?我在尝试让 eval() 工作时遇到了太多错误。

谢谢你的帮助。

I have a row in a mysql table whose column contains:

This is a test.

I have another row in the same mysql table whose same column contains:

K_IM_A_CONSTANT

Earlier on in the PHP script, this line of code exists:

define(K_IM_A_CONSTANT, 'This is a constant.');

How can I echo the contents of the column whereby, the returned value would either be "This is a test." or "This is a constant.", depending on the row selected?

Is eval() the way to do it? If so, how might the eval() syntax look? I have been getting too many errors trying to get eval() to work.

Thanks for helping.

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

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

发布评论

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

评论(2

像你 2024-11-10 02:20:50

使用 constant 函数:

if(defined($row['column_name']))
{
    echo constant($row['column_name']);
}

Use the constant function:

if(defined($row['column_name']))
{
    echo constant($row['column_name']);
}
迷爱 2024-11-10 02:20:50

那么给定一段文本,您想找到一个其值与该文本段匹配的常量的名称吗?对我来说,这似乎是对“常量”的可怕滥用,但是,您需要使用 get_define_constants() :

function find_constant_name($text) {
    $constants = get_defined_constants();
    foreach($constants as $const => $val) {
        if ($val == 'Your specified text') {
             return($const);
        }
    }
}

find_constant_name('This is a test.');

So given a piece of text, you want to find the name of a constant whose value matches the piece of text? This seems like a hideous abuse of "constants" to me, but, you'd want to use get_defined_constants():

function find_constant_name($text) {
    $constants = get_defined_constants();
    foreach($constants as $const => $val) {
        if ($val == 'Your specified text') {
             return($const);
        }
    }
}

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