2012-01-04 13 views
0

私が間違っていることを教えてください。phpファイルを実行すると、実際のフォルダがPeterの代わりに "$ name"として保存されます。私は間違って何をしていますか?あなたは、文字列内の変数を展開したい場合は、二重引用符を使用する必要がPHPで変数を操作する

$name = "Peter"; 
copy_directory('you/','dir/$name'); 
+1

があなたの代わりに単一引用符の二重引用符を使用する必要がhttp://php.net/manual/en/language.types.string.php – Mimikry

答えて

4

は、ここに私のコードです。

$name = "Peter"; 
copy_directory('you/',"dir/$name"); 

または、交互に、文字列に変数を連結:

copy_directory('you/','dir/' . $name); 
5

あなたはピーター

copy_directory('you/',"dir/$name"); 
+0

それことをしようとしました – user1037871

+0

あなたは他の人たちが示唆しているように試みることができます:copy_directory( 'you /'、 'dir /'。$ name); –

+1

申し訳ありませんが私はうまく動作します! :D本当に申し訳ありません – user1037871

2

として解釈される変数のために、二重引用符を使用する必要があります問題は、'を使用していますが、そこに使用する必要があります。""または'dir/'. $name

copy_directory('you/','dir/$name'); 
2

php変数を使用して連結演算子を使用することをお勧めします。

copy_directory('you/','dir/'.$name); 

更新回答:

これは何を使用するには、大きな論争である可能性があります。誰もが自分の意見です。しかし、人々は二重引用符の複雑さを避けるべきだと言います。二重引用符はメモリ節約の問題があります。小さな値については関係ありません。 PHP変数を使用しているときに連結演算子を使用することをお勧めします。

+1

**によると**誰ですか?変数を連結することは読みやすいと私は同意しますが、それはかなり主観的であり、一重引用符と二重引用符の間の伝説的なパフォーマンスの差は[無視できるものであり、完全に仮定されたものではありません](http://phpbench.com/)。 –

+0

解析の解答のリンクを参照してください。 –

+0

あなたの最初のリンクは私のポイントを補強し、他の2つはそれぞれ5歳と7歳です。二重引用符で囲まれた文字列を解析するとPHPの過去のバージョンではペナルティが発生しましたが、この問題は3年以上解決されています。変数の解析が行われていないとき、 '' 'vs' ''はコードスタイルと読みやすさの両方の質問です(どちらも主観的なメトリクスです)。私はあなたの好みに同意しますが、初心者の読者にこの引数 –

3

二重引用符を使用。

$name = "Peter"; copy_directory('you/',"dir/$name"); 

または、変数を連結します。 「DIR/$名」 以上に関する情報:

$name = "Peter"; copy_directory('you/','dir/' . $name);