2009-08-13 17 views
0

初心者の質問です。phpで置換するための適切な構文?

私が代わりにはどうすればよい:{personID}ため

$_SESSION['personID']を次のように:

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

タイトルが連結言う、質問は(str_replaceのような)substitue述べてあなたは何を探していますか? – gnarf

+0

申し訳ありませんが、おそらく代わりにタイトルの方が良いでしょう。 – pgtips

答えて

4

見て、この:

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

echo $people_address; 

出力:

/v1/People/someID/Addresses 
+0

これは意味があり、動作します、ありがとう! – pgtips

0

EDIT:この回答は編集後の質問には適用されなくなりましたが、コメントで発生したいくつかの質問を説明するために少し残しています

いくつかの方法があります.演算子はおそらく理解しやすいでしょう。目的は文字列を連結することです。

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(); 
関連する問題