代码之家  ›  专栏  ›  技术社区  ›  helloandre

在php中引用常量:“这是一个MY_常量”

  •  17
  • helloandre  · 技术社区  · 16 年前

    define("TESTER", "World!");
    echo "Hello, TESTER";
    

    显然输出“Hello,TESTER”,但我真正想要的是:

    $tester = "World!";
    echo "Hello, $tester";
    

    输出“你好,世界!”。

    5 回复  |  直到 6 年前
        1
  •  18
  •   Dinah SLaks    16 年前

        2
  •  5
  •   Cesar    16 年前

    我建议您使用串联,因为:

    1. 当您将变量使用到双引号字符串中时,您的可见性不好;
    2. 当您使用双引号字符串时,php可以缓慢处理;
    3. 您不需要将常量转换为字符串,因为php没有任何分隔符,因此它知道常量是什么。
        3
  •  4
  •   Daren Schwenke    16 年前

    连接是一条路要走。

    echo preg_replace("/TESTER/",TESTER,$original_content);
    
        4
  •  1
  •   user187291    16 年前

    不可能,除非您编写自己的字符串解析函数

        5
  •  1
  •   joebert    16 年前

    我发现,当常量的点连接出现问题时,使用sprintf获取字符串通常是我最终想要的方式。

        6
  •  1
  •   AlexisAmasis    5 年前

    为任何可能觉得有用的人发帖,类似这样的东西会有用:

    <?php
    // example code
    define('AAA', '30V');
    $constant = 'constant';
    echo "{$constant('AAA')}"; //Echoes 30V
    

    相信我,我也不相信这样的事情是可能的,但事实确实如此!在tehplayground.com上试试,自己看看。

    这要归功于想到它的人和发现它的同事(我认为他在stackoveflow中找到了)。

        7
  •  0
  •   Brian Tompsett - 汤莱恩 andrewwong97    6 年前

    "this is " . MY_CONSTANT
    

    "this is " . constant("MY_CONSTANT");