Wenn du die Zahl als Strings weiterverarbeitest, dann ist explode ganz gut geeignet:
list($vormkomma, $nachmkomma) = explode('.', $zahl);
Diese ganzen Einzeiler sehen immer ganz nett und intelligent aus, aber was ist geben eine vernünftige Funktion einzuwenden, die die Grenzfälle und Ausnahmen auch behandelt?
Was ist z.B., wenn explode() drei Arrayelemente erzugt? Dann wird ja wohl irgendwas nicht stimmen mit der Eingangsgröße und man müsste eine Exception auslösen (oder zumindest 'false' zurückgeben).
Das muss man im konkreten Fall selbst abschätzen. Wenn $zahl aus einer nicht vertrauenswürdigen Quelle kommt, ist der Aufwand sicher gerechtfertigt, nicht jedoch wenn es z.B. aus einem float-Feld einer DB kommt.