В PHP я пробовал этот код print 08+"51";
но я не знаю, почему это дает 51, в то время как print 07+"51";
дать 58?
Потому что, когда целое число начинается с 0, вы используете восьмеричное. 08 не является действительным восьмеричным числом, поэтому оно переводится в ноль. 0 + 51 (потому что «51» преобразуется в целое число благодаря жонглированию типов) равно 51.
Других решений пока нет …