La solución de @blaDDI es ingeniosa y la explicación de @white correctísima y clara, pero hay un error dee concepto en el uso de los radio button en HTML.
La idea de los radio button es una selección excluyente mutuamente, es decir, si hay 3 radios con el mismo valor, el navegador enviará solo el seleccionado y no los otros dos, por lo que el script falla al querer leer los valores no recibidos.
La solución es ingeniosa porque al hacer de los radio un vector, se reciben todos los valores, pero esa no es la función del componente, que es tratar de minimizar el envío de datos.
Se podría solucionar de esta otra manera enviando un solo dato:
<?php
$coca=1;
$fanta=0.8;
$agua=0.5;
$iva=0.21;
?>
<form method="post" action="">
<input id="Coca Cola" name="bebida" type="radio" value="coca">Coca Cola(<?=$coca?>$)
<br>
<input id="Fanta" name="bebida" type="radio" value="fanta">Fanta(<?=$fanta?>$)
<br>
<input id="Agua" name="bebida" type="radio" value="agua">Agua(<?=$agua?>$)
<br>
<input type="submit" name="enviar" value="Enviar Datos" >
<form>
<?php
if (isset ($_POST['enviar'])) {
print("<h2>Valores de las bebidas:<br />");
print( "El precio de la Coca Cola es $coca + $iva= {$coca*$iva}<br />");
print("El precio de la Fanta es $fanta + $iva= {$fanta*$iva})<br />";
print("El precio del Agua es $agua + $iva= {$agua*$iva})<br />";
$cual= ($_POST['bebida']);
switch($cual){
case 'coca': $precio = $coca; break;
case 'fanta': $precio = $fanta; break;
case 'agua': $precio = $agua; break;
}
$verpreciototal = ($precio * $iva)+ $precio;
print("Ud eligió $cual: $precio + $iva = {$agua*$iva}) ");
}
?>
De esta manera conseguís varias cosas:
- que el funcionamiento sea independiente de los datos del formulario.
- que el precio no esté en el formulario (en dónd epuede ser fácilmenet cambiado antes de que se envíe).
- recibir un solo valor en vez de 3.
- aproximarse más a una solución real en dónde los valores estarán almacenados en algún lugar y serán leídos para ser usados.
Saludos cordiales!
PD: perdón si el script tiene algún error de sintaxis. Lo escribí acá y no tuve tiempo de probarlo.