2012-01-04 2 views
0

Скажите, пожалуйста, что я делаю неправильно, когда файл php выполняется, сохраняет фактическую папку как «$ name» вместо Peter. Что я делаю не так?Работа с переменной в 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

Пытался что это doesnt work – user1037871

+0

Вы можете попробовать, как предложили другие: copy_directory ('you /', 'dir /'.$ name); –

+1

Извините Im idoit, он действительно работает! : D очень жаль – user1037871

2

Проблема в том, что вы используете ', но должны использовать там "" или 'dir/'. $name:

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

Рекомендуется использовать оператор конкатенации при использовании переменных php.

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

Обновлено Ответ:

Это может быть большая дискуссия, что использовать. Это собственное мнение каждого. Но люди говорят, что нам следует избегать сложности двойных кавычек. Проблемы с сохранением памяти имеют двойные кавычки. Для небольших значений это не имеет значения. Поэтому я подумал, что использовать оператор конкатенации при использовании переменных php является хорошей практикой.

+1

Согласно ** кому **?Хотя я согласен с тем, что конкатенация переменных легче читать, это довольно субъективно, и доказанная разница в производительности между одиночными и двойными кавычками оказалась [весьма незначительной и не совсем предполагаемой] (http://phpbench.com/). –

+0

См. Ссылки в ответ на разбор. –

+0

Ваша первая ссылка усиливает мою мысль, а двум другим - пять и семь лет, соответственно. Хотя прошлые версии PHP действительно демонстрировали штраф при анализе строк с двойными кавычками, проблема была решена более трех лет. Когда переменный синтаксический анализ не выполняется, '' 'vs' '' является вопросом стиля кода и читаемости (которые являются субъективными метриками). Я согласен с вашими предпочтениями, однако я бы не хотел, чтобы начинающие читатели видели этот аргумент и цитируют дезинформацию как истину. –

3

Используйте двойные кавычки вместо одинарных кавычек;

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

Или, наоборот, объединить переменную;

$name = "Peter"; copy_directory('you/','dir/' . $name); 
Смежные вопросы