【问题标题】:how to pass constants as part of a string in php如何在php中将常量作为字符串的一部分传递
【发布时间】:2014-03-25 11:28:29
【问题描述】:

我正在尝试在响应字符串中传递app_idapp_key。我将它们设置为常量,然后将它们传递到字符串中。我收到语法错误

Parse error: syntax error, unexpected ':'

我做错了什么?对不起,我对 PHP 很陌生

    $app_id = 123456; 
    $app_key = '1234abcd5678';

    $query_string = https://apiresponse.htm?app_id=$app_id&app_key=$app_key;

    echo $query_string;

【问题讨论】:

  • 字符串必须由'" 分隔。 php.net/manual/en/language.types.string.php。 PHP 怎么知道http://... 应该是一个字符串?
  • 这些只是变量,它们不是常量。此外,您需要在 URL 字符串周围加上引号。
  • @JonathonReinhart--我才意识到

标签: php


【解决方案1】:

您需要用引号将您的字符串括起来并连接您的变量以避免错误

$query_string = 'https://apiresponse.htm?app_id='.$app_id.'&app_key='.$app_key;

【讨论】:

  • 或者他可以使用双引号而不使用字符串连接。
  • 是的,他也可以这样做
【解决方案2】:

...但是$app_id$app_key 不是常量,它们是通常的标量变量(!)。 所以表达你的$query_string 最好的是

$query_string = "https://apiresponse.htm?app_id=$app_id&app_key=$app_key";

比串联更多 fast 和可读性。


使用define()表示常量:

  define('app_id','123456');
  define('app_key','1234abcd5678');
  $query_string = 'https://apiresponse.htm?app_id='.app_id.'&app_key='.app_key;

PS:现在最好的方式是连接运算符,就像@Fabio 的建议一样。

【讨论】:

    【解决方案3】:

    您的$query_string 没有用单引号或双引号括起来。

    在这种情况下,由于您的字符串包含变量,您应该使用双引号。这样,您就不必跳出字符串来添加变量。

    $query_string = "https://apiresponse.htm?app_id=$app_id&app_key=$app_key";
    

    如果你要使用单引号,你会这样做:

    $query_string = 'https://apiresponse.htm?app_id='.$app_id.'&app_key='.$app_key;
    

    阅读更多关于Strings的PHP手册

    【讨论】:

      【解决方案4】:

      使用" 将变量替换为字符串中的值

      $query_string = "https://apiresponse.htm?app_id=$app_id&app_key=$app_key";

      它比字符串 concat 更干净(如'a='.$a

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-08
        • 2020-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多