La variable texto es en si misma un array de caracteres, por lo que no es necesario que extraigas partes de ese array para ir almacenando en otro si poniendo $texto[0] ya accedes a la primer letra de tu frase:
Código PHP:
$texto="hola como estas";
$x=0;
while($texto[$x])
{
echo $texto[$x]."<br>";
$x++;
}
En el caso que quieras el contenido de $texto en la variable $almacen simplemente haces $almacen=$texto.
Saludos.