Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для vadimiron

Ветеран


Сообщения: 1864
Благодарности: 120

Профиль | Отправить PM | Цитировать


Цитата:
if (!$buf = trim($buf)) {
continue;
}
Я думаю это так: сначало надо понять что идёт в начале: присвоение( = ) или отрицание(!)
В мануале, в таблице приоритетов стоит, что ! производится раньше чем =, то есть получается происходит следущее:
сначало берётся отрицание от $buf и потом получившемуся значению присваевается новое значение, а именно trim($buf), что в общем то не имеет большого смысла
НО: в мануале внизу в сноске стоит
Цитата:
Although ! has a higher precedence than =, PHP will still allow expressions similar to the following: if (!$a = foo()), in which case the output from foo() is put into $a.
Значит !$buf = trim($buf)
надо скорей всего расценивать как !($buf = trim($buf)), то есть сначало обрубаем пустые места буффера с обоих сторон, и если буффер после этого обрубания остаётся нулевым (то есть ничего кроме пустоты там не было), то сервер пропускает данную итерацию и обрабатывает следущее сообщение в очереди

Отправлено: 20:13, 17-12-2005 | #6