Разделение DBAL на два класса, Connection и Statement

флоппик

promotor fidei
Команда форума
Партнер клуба
Я тут вчера из-за мелкой проблемы в чужом коде узнал, что в strlen() нельзя третьим параметром null передать что бы длину не ограничивать, а вы говорите — персистентные соединения с кастомным классом починить... )
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Я тут вчера из-за мелкой проблемы в чужом коде узнал, что в strlen() нельзя третьим параметром null передать
вообще-то Warning: strlen() expects exactly 1 parameter
идея ограничивать длину строки при подсчете длины строки мне кажется странной

флоппик, это ты про PHP или про что-то другое?
в С нет null, а в Java и питоне строка - объект, и длину получают из метода
 
Последнее редактирование:

Вурдалак

Продвинутый новичок
Я почему-то думаю, что флоппик про DateTime::createFromFormat().

Там, короче, такая же тема. Нельзя null, хотя параметр опциональный и требует объекта.
 

artoodetoo

великий и ужасный
флоппик оговорился: речь про substr() Третий параметр length: он может быть пропущен, а может быть null. Результат будет разный.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
для substr это документированное поведение, 5 лет назад дописали
If length is given and is 0, FALSE or NULL an empty string will be returned.
там просто приведение типов, так работало всегда, и менять это нельзя по bc
 

AnrDaemon

Продвинутый новичок
А, тогда конечно логично. А то просто я даже доку на strlen не поленился поднять. Какой такой третий параметр, думаю? >.<
 

флоппик

promotor fidei
Команда форума
Партнер клуба
для substr это документированное поведение, 5 лет назад дописали
там просто приведение типов, так работало всегда, и менять это нельзя по bc
Так для персистентных + пдо - это тоже документировано, такой красненькой рамочкой "не используйте пользовательские классы с персистентными соединениями"
Там очень херовое приведение, на самом деле - если пользовательский код у тебя запрашивает $length, сует его параметром в substr() то не ограничить результат ты не можешь никак. Ну вот просто — никак. И это очень поломанная консистентность: мы везде пишем и говорим null = unset = отсутствие переменнной, и вдруг находим место, где это не так.
 

hell0w0rd

Продвинутый новичок
grigori, и как ты сравнишь с PHP_MAX_INT то, что может быть больше этого числа?)
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
hell0w0rd,
PHP_INT_MAX - это предел адресации, и больше 2 гб единого участка памяти на 32-битных системах ты не выделишь в силу технологических ограничений процессора.
 
Последнее редактирование модератором:
Сверху