В Linux, что делает все значения в “главной” средней команде?

Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_ENCAPSED_AND_WHITESPACE

Эта ошибка чаще всего встречается при попытке ссылаться на значение массива с помощью ключевого слова для интерполяции внутри строки с двумя кавычками , когда вся конструкция комплексной переменной не заключена в {}.

Случай ошибки:

Это приведет к Unexpected T_ENCAPSED_AND_WHITESPACE:

echo "This is a double-quoted string with a quoted array key in $array['key']";
//---------------------------------------------------------------------^^^^^

Возможные исправления:

В строке с двойными кавычками PHP разрешает использовать строки ключей ключей без кавычек и не выдаст E_NOTICE. Таким образом, вышесказанное может быть записано как:

echo "This is a double-quoted string with an un-quoted array key in $array[key]";
//------------------------------------------------------------------------^^^^^

Вся сложная переменная массива и ключ (ы) могут быть заключены в {}, и в этом случае они должны быть указаны чтобы избежать E_NOTICE. Документация PHP рекомендует этот синтаксис для сложных переменных.

echo "This is a double-quoted string with a quoted array key in {$array['key']}";
//--------------------------------------------------------------^^^^^^^^^^^^^^^
// Or a complex array property of an object:
echo "This is a a double-quoted string with a complex {$object->property->array['key']}";

Конечно, альтернатива любой из вышеперечисленного заключается в объединении переменной массива in вместо интерполировать его:

echo "This is a double-quoted string with an array variable " . $array['key'] . " concatenated inside.";
//----------------------------------------------------------^^^^^^^^^^^^^^^^^^^^^

Для справки см. раздел «Переменная синтаксический анализ» в странице руководства PHP Strings

50
задан animuson 26 March 2012 в 13:27
поделиться

2 ответа

В странице справочника говорится, что коды состояния отображаются на, но не, что они на самом деле имеют в виду. От страницы руководителя:

'D' = uninterruptible sleep
'R' = running
'S' = sleeping
'T' = traced or stopped
'Z' = zombie

'R' является самым легким; процесс готов работать и будет работать каждый раз, когда его очередь использовать ЦП прибывает.

'S' и 'D' являются двумя состояниями сна, где процесс ожидает, что что-то произойдет. Различие - то, что 'S' может быть прерван сигналом, в то время как 'D' не может (это быть обычно замеченным, когда процесс ожидает диска).

'T' является состоянием, где процесс останавливается, обычно через SIGSTOP или SIGTSTP. Это может также быть остановлено отладчиком (ptrace). Когда Вы видите, что состояние, это обычно - потому что Вы использовали Ctrl-Z для помещения команды на фон.

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

105
ответ дан CesarB 7 November 2019 в 10:42
поделиться

Можно использовать команду man top

13
ответ дан R3tep 7 November 2019 в 10:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: