Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011 Откуда: Москва
Помог: 0 раз(а)
У меня есть файл users.txt, который содержит в себе 2 строки:
Цитата:
123
abc
В моем скрипте я открываю этот файл с помощью file() и, как написано в мануалах этого сайта, мне должен вернутся массив. Как я понимаю, каждый эл-нт массива имеет тип string. Дальше я сравниваю 1 эл-мент из массива с строкой '123'. Выводит false. Если я попытаюсь сравнить не со строкой, а с чистом 123, то выводит true, но если я буду сравнивать по типу элемент и число, то выведет false. А теперь самое интересно: если получить тип элемента массива (gettype), то мне выдаст string! В чем проблема? Объясните, пожалуйста.
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
это все динамическая типизация, детка (Добавление)
в мануале говорится, что возвращается не массив строк (string array), а array of file lines - это разные вещи. если хочешь строго заданный тип - можешь к нему привести (int) $users[0] или intval($users[0]) ... но динамическая типизация, будь она неладна, в любой момент тебе норовит приподнести новый сюрприз
Estenny
Отправлено: 01 Ноября, 2011 - 16:52:39
Гость
Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011 Откуда: Москва
Помог: 0 раз(а)
Stierus, ну с переводом в число я понял, а вот как сравнить с переводом в строку?
Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011 Откуда: Москва
Помог: 0 раз(а)
Мелкий, отлично, работает. Но у меня вопрос: что такое PHP_EOL? Я понимаю, что это шаблон разделения для метода, но не понимаю какой и как он работает!
White, во, вот это вообще идеально. У меня было предположение, что тут не все ладно с пробелами.
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Estenny пишет:
что такое PHP_EOL?
Это константа PHP, конец строки для платформы, на которой исполняется скрипт.
\n для никсов, \r\n для виндов
----- PostgreSQL DBA
Estenny
Отправлено: 01 Ноября, 2011 - 17:12:28
Гость
Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011 Откуда: Москва
Помог: 0 раз(а)
Спасибо всем! В карму поставить не могу, простите . (Добавление)
Упс, появился небольшой вопрос: когда я записываю данные в файл, мне надо сделать в нем перенос строки. Записываю с помощью fwrite(). \n не подходит.
White
Отправлено: 01 Ноября, 2011 - 17:49:57
Частый посетитель
Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011 Откуда: Днепропетровск
Помог: 28 раз(а)
Estenny в этом случае \n только в двойных кавычках
----- if(time()>1356048000) die();
OrmaJever
Отправлено: 01 Ноября, 2011 - 17:50:02
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Estenny пишет:
Упс, появился небольшой вопрос: когда я записываю данные в файл, мне надо сделать в нем перенос строки. Записываю с помощью fwrite(). \n не подходит.
PHP_EOL, переводится как PHP End of Line
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Estenny
Отправлено: 01 Ноября, 2011 - 18:14:05
Гость
Покинул форум
Сообщений всего: 122
Дата рег-ции: Нояб. 2011 Откуда: Москва
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.