Спасибо за ответ. Я так понимаю, то что вы говорите называется ассоциативностью. Я отталкиваюсь вот от этого http://ru2.php.net/manual/en/lan...s.precedence.php и согласно этому выполнение должно произойти по сценарию аналогичному с этим 1 + 3 * 5 тоесть должно получится 16, а не 20 или документация врёт по поводу приоритета логических операторов? И они имеют одинаковый приоритет, а разруливаются только с помощью их ассоциативности?
Мой вопрос скорее относится к внутреннему устройству php и оптимизациям которые сделали его разработчики.
Итак на самом деле всё просто даже элементарно выражения: (1 || 0 && 0) возвращает true и ((1 || 0) && 0) возвращает false, сдесь всё правильно приоритет оператора && выше чем || поэтому всё работает как надо.
Почему он сперва выполняет оператор || ведь у && приоритет больше, установка скобок ничего не меняет. Ещё сильнее всё запутывается если функция возвращает true, выведено будет 11.
У меня есть два варианта почему так:
1: Я туплю и что-то упускаю
2: Php использует какие-то оптимизации. К примеру в данном выражении выполним f(1) и если результат окажется true мы найдём самое быстрое решение.
Просьба, если дело именно в поведении php дайте ссылочку где это описано.
Какая разница, было задокументировано или нет, не надо так писать и все.
Разумеется переменные с таким иминем я не использую, я просто столкнулся с тем что имя свойства объекта надо было проверить на валидность, вот и встал вопрос, а что такое валидность с точки зрения php в отношении имён;
Не очень понятно, в чём вопрос. Работает ли это? Да, работает. Нужно ли так делать? Нет, не нужно.
Попробую объяснить. Итак прежде всего цитата из документации
Цитата:
Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
Из этого следует что в приведённом мной примере работают переменные с именами которые не являются "валидными" тоесть теоритически это не должно работать. И это не работает если делать так:
получается примерно такая ошибка: Parse error: syntax error, unexpected '1'. Это наводит меня на мысль что внутренне переменная в php может иметь имя в виде строки или числа, но когда парсер или транслятор разбирает код он проверяет имена на соответствие чемуто похожему на регулярное выражение указанное выше, а поскольку имя не соответствует то выдаёт ошибку. Таким образом с помощью синтаксиса с фигурными скобками мы обходим проверку парсером переменной на валидность имени. Вопрос заключается в следующем: это нормальное задокументированное поведение или нет. И если это нормально дайте ссылку на какое-нибудь описание этой особенности.
Я не думал что вобще возможно использовать число в качестве имени переменной или свойства, про синтаксис с фигурными скобками я знал и раньше. Однако такие имена не соответствуют этому: http://www.php.net/manual/en/lan...ables.basics.php Прошу высказать ваше мнение по этому поводу, а ещё лучше дать ссылку на объяснение каким образом переменные могут иметь подобные имена. Спасибо!
имеем апач с настроеными виртуальными хостами всё это висит на одном ип адресе также имею доступ к управлению доменом, было создано две а записи site.ru и www[dot]site[dot]ru работало нормально, потом добавил поддомен также две а записи xxx.site.ru www[dot]xxx[dot]site[dot]ru после этого перестали работать две записи основного домена, я в первый раз в жизни редактирую эти записи почитал мануалы понял для чего нужны все эти a cname mx итд записи. вобщем объясните где прописывать поддомен в а или cname записях или дайте какойнибудь мануальчик где это подробно расписано. (Добавление)
вот блин написал не в том разделе
Может это не совсем подходит под тематику данного раздела, но всё же вопрос такой: захожу на свой сайт и антивирус говорит фу, открываю index.php и в самом конце файла после завершающего
?> вижу html код которого там быть не должно, объясните как это возможно