27

次のコードを確認してください。

$imagebaseurl = 'support/content_editor/uploads/$name';

これ$imagebaseurlは、画像フォルダー(アップロード)へのリンクを含む変数であり、フォルダー内には、ユーザー名にちなんで名付けられた他のフォルダーがいくつかあります。例:名前がjohnのユーザーがいるため、リンクは次のようになります-> support/content_editor/uploads/john

主なアイデアは、ユーザーがログインして自分の画像ギャラリーを閲覧するときに、基本的に彼の名前にちなんで名付けられた自分のギャラリーに連れて行きたいということです。

彼がギャラリーにアクセスするとき$name、リンクの値はユーザーのログイン名(セッションから)から取得されます。$nameここで問題となるのは、上記のリンクの配置が間違っていることをすでに理解しているため、機能しない理由です。(support / content_editor / uploads / john)の代わりにこのURL全体>(support / content_editor / uploads / $ name)を取得しています

$nameさて、これでの使い方を教えてください$imagebaseurl = 'support/content_editor/uploads/$name';

4

2 に答える 2

64
$imagebaseurl = 'support/content_editor/uploads/' . $name;

また

$imagebaseurl = "support/content_editor/uploads/{$name}";

二重引用符を使用する場合は、上記を次のように記述することもできます。

$imagebaseurl = "support/content_editor/uploads/$name";

PHPにとってどの部分が変数で、どの部分が文字列であるかが明らかでない文字列に変数を挿入する必要がある場合は、{$...}単にではなく二重引用符で使用する習慣を身に付けることをお勧めします。$...

最高のパフォーマンスが必要な場合は、一重引用符を使用した文字列連結を使用してください。

于 2012-05-09T08:30:23.953 に答える
-7

私は前の投稿にこれ以上反対することはできませんでした。

使用するのは悪い習慣だと言っても過言ではありません

$varname = 'EXAMPLE';

$fulltext = "This is an $varname";

私の経験からすると、sprintf()として知られている私の親友を利用する方が保守しやすいです。

define('CONST_NAME', 'This is an example of a better %s');
define('EXAMPLE', sprintf(CONST_NAME, 'practice'));

echo EXAMPLE;

なんで?最初のものはより明確に見えるかもしれませんが、2番目のものははるかに再利用可能です。文字通り、他の言語では存在しないphpマジックダブルクォートナンセンスよりもsprintfを利用することをお勧めします。

http://php.net/manual/en/function.sprintf.php

これは、C#や他の多くの言語と非常によく似た方法でもあります。

参照:https ://msdn.microsoft.com/en-us/library/system.string.format(v = vs.110).aspx

于 2017-05-09T20:59:58.917 に答える