Заметил один интересный прикол в работе php под Win.
Иногда несмотря на указание require_once интерпретатор пытается подгружать заново модуль, что приводит к ошибке "Cannot redeclare... " (класс,функцию и.т.п.)

Проблема возникает когда прописан полный путь с именем диска.

Решается вопрос довольно забавным способом - сменой регистра буквы диска :)

Поковырялся немного в мануале :
http://ua.php.net/operators.comparison

Исходя из специфичности сравнения вцелом мне кажется что проблема возможно в механизме сравнения строк в языке вцелом.

В первый раз столкнулся с проблемой когда писал первый прожект на Symfony , и новосгенеренный проект отказался запускаться вообще :) А при создании он прописывает в конфигах путь к библиотеке поставленной через PEAR.

Интересно мнение коллег, возможно кто знает истинную причину :)

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
* * * * * 1 голосов

3 Комментариев на “Интересная особенность PHP”

  1. Arij сказал:

    Богдан, а относительные пути не пробовал?

    у меня отрабатывало вроде без проблем (только это не на Symfony проэктах, а на хардкодных страницах, и тестил на XAMPP'овском сервере)

  2. Fritz сказал:

    Вопрос сам по себе вообще не имеет значения, ошибка возникает иногда, повторить ее сложно, число виндовых хостингов пхп невелико, на одном таком ошибка проявилась опять же на симфониевском прожекте, боролась описанным выше путем.Ее сложнее воспроизвести чем нарваться.

    Меня она интересует например только с точки зрения выявления причин, предположение о проблеме со строками основывается что пути обычно довольно длинные...а возникает иногда, лечится тоже соответственно описанным путем :) очень логичным :)

  3. Snowcore сказал:

    Знакомая ситуация.
    Одно время 2 дня промучались...





Оставте свое мнение