Оператор ++ для строк

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Оператор ++ для строк

$l="A"; $l++; -> $l="B"
$l="A0"; $l++; -> $l="A1"
$l="A9"; $l++; -> $l="B0"
$l="Z99"; $l++; -> $l="AA00"
$l="5Z9"; $l++; -> $l="6A0"
$l="9Z9"; $l++; -> $l="10A0"
$l="9z9"; $l++; -> $l="10a0"
$l="J85410"; $l++; -> $l="J85411"
$l="J99999"; $l++; -> $l="K00000"
$l="K00000"; $l++; -> $l="K00001"

Кто-нибудь объясните, для чего этот вынос мозга?? В чем политика партии?
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
Т.е. для совместимости с перлом? А перлу зачем это?
 

soines

Новичок
varan, там написано что не для совместимости а то что php делает инкремент точно также как и perl а не как C и описан что именно это значит.

А вообще зачем ты это делаешь и какой результат ожидаешь увидеть?
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
soinesНе придирайся к словам

я ожидал что строка будет преобразована к integer, а потом сделан инкремент
 

StUV

Rotaredom
>> А перлу зачем это?
см. примеры внизу страницы:
http://www.cs.cmu.edu/afs/cs/usr/rgs/mosaic/pl-exp-op.html

-~{}~ 22.09.10 17:24:

а источник совместимости с перлом наверно в истоках появления пхп
 

soines

Новичок
varan, как по твоему строка "5Z9" должна привестись к integer? Это абсолютно не явное поведение.
 

Фанат

oncle terrible
Команда форума
как 5. Это абсолютно явное поведение при неявном приведении %)
 

soines

Новичок
http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion

*****, получается конечно это "Это абсолютно явное поведение при неявном приведении" но я бы не стал на это полагаться.
 
Сверху