Почему не «exec»? выполнить команду, пока я не выведу ее вывод?

Я на Ubuntu 14.04, с PHP 5.5.9. Там у меня очень простой файл a.php:

<?php

$a = exec('clear');
print($a);

Если я запускаю скрипт, как сейчас, я получаю:

$ php a.php
<screen cleared> # nothing is displayed in the screen
# "clear" was performed successfully

Однако, если я прокомментирую print($a) просто иметь такой файл:

<?php

$a = exec('clear');

тогда ничего не происходит

$ php a.php
$               # nothing happened, I see the previous line above

Насколько я понимаю, это вызов переменной $a что делает clear быть выполненным. Но это не имеет особого смысла, так как exec () документы говорит:

exec — выполнить внешнюю программу

Есть ли причина, почему clear не выполняется, пока print() называется?

Обратите внимание, что это связано с вопросом Очистить CMD-оболочку с php но я спрашиваю здесь Зачем Бывает.

0

Решение

На самом деле, clear выполняется при вызове exec. Вы просто не видите его действие на экране, пока вы на самом деле не выводите его.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]