Почему результат 10?здесь же $a строка помоему
Потому что у оператора сложения операнды - числового типа, и, вследствие этого, после применения этого оператора, результат получается числовым, а операнды, до применения сложения, также приводятся к числовому типу.
Чтобы наверняка быть уверенными в том, какого типа стала переменная. Это в Вашем примере все линейно просто - Вы видите и место объявления переменных, и строку с операцией. В общем случае это почти всегда не так - переменные приходят, например, как параметры и их тип может меняться во время исполнения (что, в общем-то, нежелательно с точки зрения логики, но тем не менее, язык это позволяет).
Master_pascal, в PHP нет жёсткой типизации как, например, в C или C++.