| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > PHP не правильно устанавливает тип |
| Автор: RinOSpro 24.12.2007, 19:20 | ||||
Здравствуйте мне нужно было код с с++ перевести на php
вот так перевел
Но $keyy имеет тип Array хотя я и settype использовал! Помагите пожалуйста! |
| Автор: Levsha 24.12.2007, 19:44 | ||
Как вариант можно в конце массив перевести в строку
|
| Автор: skyboy 24.12.2007, 21:10 | ||
| дело в другом. точнее, немного в другом. просто у тебя $keyy - пустая строка. потому попытка "достучаться" через индекс до 5, 7 и 29 символов ничего не устанавливает. тип меняется на массив и вставляются значения как элементы с указанным индексом. потому либо вариант, предложенный Levsha, либо в начале
Добавлено через 3 минуты и 26 секунд в смысле - проблема не в "неверном определении РНР типа", а в неверном подходе. когда ты работаешь в С/С++, то запись $keyy[55] означает запись в ячейку памяти по адресу $keyy + sizeof($keyy[0]). И потом, когда говоришь "выводи от адреса $keyy до символа \0 как строку" С/С++ выводит. А в случае с РНР работы с памятью напрямую не происходит. Интепретатор, видя, что ты пытаешься получить от пустого значения элемента по индексу попросту меняет тип(сказывается динамическая типизация), так, чтоб твои действия(взятие несуществующего индекса) имело хоть какой-то смысл. вот и все. |
| Автор: Levsha 25.12.2007, 07:01 | ||
| skyboy, согласен что дело в другом. просто предложил действенный способ если не надо париться Ну а если запариться
|
| Автор: RinOSpro 25.12.2007, 20:47 |
| Спасибо! сейчас тип правильно определяется. но результат какой то не такой. К примеру $lock = EXTENDEDPROTOCOL]pLLi6vTpnvU67>vqPf:MH]X4BCwin; Тогда $keyy = 00000000000000000000660000001000008000001000000000000000000000000066000000100000800000100000 что то не верно |
| Автор: Levsha 26.12.2007, 09:25 |
| А какой должен быть $keyy Что в С++ означает "xor" ? Точно не скажу, но насколько я помню, когда я работал с этим оператором в php , он работал только с числами... И еще помлю что он давал разные результаты на разных платформах, при одинаковых условиях. Короче он мутный какой-то! |