在PHP中替换的正确语法?

时间:2009-08-13 01:15:48

标签: php

初学者问题。

我如何替代:

以下为$_SESSION['personID']

{personID}

public static $people_address = "/v1/People/{personID}/Addresses"

2 个答案:

答案 0 :(得分:4)

看看这个:

$template = "/v1/People/{personID}/Addresses";
$people_address = str_replace('{personID}', $_SESSION['personID'], $template);

echo $people_address;

输出:

/v1/People/someID/Addresses

答案 1 :(得分:0)

编辑:此答案不再适用于编辑后的问题,但我会将其暂时搁置一段时间来解释评论中出现的一些问题另一个问题的答案

有几种方法 - .运算符可能是最容易理解的,它的全部目的是连接字符串。

public static $people_address = "/v1/People/".$_SESSION['personID']."/Addresses"; 
//PHP Parse error:  syntax error, unexpected '.', expecting ',' or ';' 

public static $people_address = "/v1/People/$_SESSION[personID]/Addresses";
//PHP Parse error:  syntax error, unexpected '"' in

但是你不能遗憾地在属性声明中使用连接 - 只是简单的赋值。你不能使用“字符串替换”格式:

要解决它,你可以在类之外分配静态 - 即:

class test {
  public static $people_address;
  // ....
}

// to illustrate how to work around the parse errors - and show the curly braces format
test::$people_address = "/v1/People/${_SESSION[personID]}/Addresses";

// another (much better) option:
class test2 {
  public static $people_address;
  public static function setup() {
    self::$people_address = "/v1/People/".$_SESSION['personID']."/Addresses";
  }
}
// somewhere later:
test2::setup();