2016-12-31 3 views
-1

Спасибо за ваш ответ, Хорошо позвольте мне исправить этот вопрос:

$username = $_POST['username']; 
echo $username; 

Это дает «tjones», отлично.


Теперь, если я пытаюсь это:

$filter = "(uid=$username)"; 
echo $filter; 

(uid=) 

Как бы один сделать $filter эхо "(uid=tjones)"?

Еще раз спасибо

+0

Вы говорите, что если вы объедините оба своих фрагмента в том же скрипте, он напечатает 'tjones (uid =)'? – Drakes

+0

Да драконов точно. –

+0

Это полный код? Если $ filter находится внутри функции, тогда вам может понадобиться 'global $ username' чуть выше вашего второго фрагмента. Это может быть проблема с объемом. – Drakes

ответ

0

$ filter = "(uid = {$ username})";

echo $ filter;

+0

Спасибо за комментарий после прочтения всех этих комментариев. Я думал, что сошел с ума, спасибо, что показал мне свет! –

+1

Пожалуйста, прочитайте [Как написать хороший ответ?] (Http://stackoverflow.com/help/how-to-answer). Хотя этот ответ решил вопрос OP и выбран как принятый, но на самом деле это ответ низкого качества, поскольку нет описания того, почему эта ошибка происходит и как ответ помогает решить проблему. IMO [ответ] (http://stackoverflow.com/a/41412380/1908331) от @thecrazyprofessor более надежный, так как он объяснил источник ошибки и как ее решить ... – EhsanT

0

Если tjones является строкой, вы должны заключить его в кавычки:

$username = "tjones"; 
echo $username; 
0

Он работает. Проверьте demo.

<?php 

$username = 'tjones'; 
$filter = "(uid=$username)"; 
echo $filter; 

результат:

[email protected]:~$ php test.php 
(uid=tjones) 
1

Иногда это помогает использовать {}

Пример:

$username = 'tjones'; 
$filter = "(uid={$username})"; 
echo $filter; 

{} говорит PHP, что значение внутри не является частью string, и это гарантирует, что PHP знает, что ему нужно loo k после $ username.

Вы иногда могли видеть люди echo "Hello ".$username." Welcome back"; это лучше использовать {} как этот echo "Hello {$username} Welcome back";

0

Ваш код должен работать. Это то, что я получаю:

Notice: Use of undefined constant tjones - assumed 'tjones' in C:\php\test.php on line 3 
(uid=tjones) 

Такой же результат в PHP 5.5, 5.6 и 7.0.

Ваш модифицированный код также работает, если назначено значение. В противном случае вы получите undefined index уведомление.

0

Используйте . символ для разделения string literals и $variables.

, положив конец строки с " (кавычки), затем добавить . сопровождаемый $var, другой ., а затем запустить " еще раз, если вы хотите продолжить строку.

<?php 

    $username = 'tjones'; 
    $filter = "(uid=" . $username . ")"; 
    echo $filter; 
    ?>