|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » синтаксическая структура |
|
синтаксическая структура
|
линуксоид Сообщения: 189 |
Профиль | Отправить PM | Цитировать |
|
------- Отправлено: 11:53, 17-12-2005 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать ! в начале строки - это "не" (отрицание), но конструкция, похоже все равно ошибочна, тк "=" - это опреатор присваивания $a = 5; обозначает, что переменной $a присвоили значения 5, в отличие от выражения "==" используемому при проверке (проверка равенства по значению), или "===" - (по значению и типу)
|
Отправлено: 13:14, 17-12-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
линуксоид Сообщения: 189
|
Профиль | Отправить PM | Цитировать mar
К сожелению не ошибочная Вот весь код. #!/usr/local/bin/php -q <?php error_reporting(E_ALL); /* Allow the script to hang around waiting for connections. */ set_time_limit(0); /* Turn on implicit output flushing so we see what we're getting * as it comes in. */ ob_implicit_flush(); $address = '192.168.1.53'; $port = 10000; if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) < 0) { echo "socket_create() failed: reason: " . socket_strerror($sock) . "\n"; } if (($ret = socket_bind($sock, $address, $port)) < 0) { echo "socket_bind() failed: reason: " . socket_strerror($ret) . "\n"; } if (($ret = socket_listen($sock, 5)) < 0) { echo "socket_listen() failed: reason: " . socket_strerror($ret) . "\n"; } do { if (($msgsock = socket_accept($sock)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "\n"; break; } /* Send instructions. */ $msg = "\nWelcome to the PHP Test Server. \n" . "To quit, type 'quit'. To shut down the server type 'shutdown'.\n"; socket_write($msgsock, $msg, strlen($msg)); do { if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) { echo "socket_read() failed: reason: " . socket_strerror($ret) . "\n"; break 2; } if (!$buf = trim($buf)) { continue; } if ($buf == 'quit') { break; } if ($buf == 'shutdown') { socket_close($msgsock); break 2; } $talkback = "PHP: You said '$buf'.\n"; socket_write($msgsock, $talkback, strlen($talkback)); echo "$buf\n"; } while (true); socket_close($msgsock); } while (true); socket_close($sock); ?> Как бы перевести ее на русский чтоб понять чтож она делает |
------- Отправлено: 17:01, 17-12-2005 | #3 |
Underson
Сообщения: n/a |
if (!$buf = trim($buf)) {
continue; } можно понять так ... если не удалось присваивание... переходим на следующюю итерацию |
Отправлено: 17:57, 17-12-2005 | #4 |
Ветеран Сообщения: 640
|
Профиль | Сайт | Отправить PM | Цитировать если этим самым присвоением мы задаем переменную то сру
|
|
------- Отправлено: 19:57, 17-12-2005 | #5 |
Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Цитата:
В мануале, в таблице приоритетов стоит, что ! производится раньше чем =, то есть получается происходит следущее: сначало берётся отрицание от $buf и потом получившемуся значению присваевается новое значение, а именно trim($buf), что в общем то не имеет большого смысла НО: в мануале внизу в сноске стоит Цитата:
надо скорей всего расценивать как !($buf = trim($buf)), то есть сначало обрубаем пустые места буффера с обоих сторон, и если буффер после этого обрубания остаётся нулевым (то есть ничего кроме пустоты там не было), то сервер пропускает данную итерацию и обрабатывает следущее сообщение в очереди |
||
Отправлено: 20:13, 17-12-2005 | #6 |
Underson
Сообщения: n/a |
vadimiron исттину говоришь...
|
Отправлено: 15:39, 18-12-2005 | #7 |
линуксоид Сообщения: 189
|
Профиль | Отправить PM | Цитировать vadimiron
спасибо |
------- Отправлено: 15:45, 18-12-2005 | #8 |
just mar Сообщения: 3904
|
Профиль | Отправить PM | Цитировать да, vadimiron прав. Так оно и есть. Причем я от греха подальше в таких случаях все-таки использую скобки. Еще одна детать - наличие или отсутствие чего-то по пустоте. Поскольку пустота бывает разная (а мануал, как показано выше изменчив ) имхо спокойней все-таки проверять пустую строку не !, а, скажем
|
Отправлено: 16:04, 18-12-2005 | #9 |
Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 16:15, 18-12-2005 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
структура AD подразделений + GPO | exo | Microsoft Windows NT/2000/2003 | 18 | 07-10-2008 11:25 | |
структура операционной системы | clop1000 | Хочу все знать | 11 | 11-10-2007 16:52 | |
Структура описывающая дробь в с++ | farik | Программирование и базы данных | 4 | 03-02-2006 10:02 | |
Структура трафика | BanzayDima | Хочу все знать | 4 | 03-04-2005 20:54 | |
структура бд в MySQL | Dutchman Mihel | Вебмастеру | 10 | 09-09-2004 13:17 |
|