di4s
(usa XUbuntu)
Enviado em 04/04/2020 - 14:21h
asparion escreveu:
Se eu fizer ate o mes 04(atual) da certo
<?php
$mes = date('m');
switch ($mes) {
case 01:
echo "Janeiro";
case 02:
echo "Fevereiro";
case 03:
echo "Março";
case 04:
echo "Abril";
}
?>
Agora se fizer ano todo da erro...
<?php
$mes = date('m');
switch ($mes) {
case 01:
echo "Janeiro";
case 02:
echo "Fevereiro";
case 03:
echo "Março";
case 04:
echo "Abril";
case 05:
echo "Maio";
case 06:
echo "Junho";
case 07:
echo "Julho";
case 08:
echo "Agosto";
case 09:
echo "Setembro";
case 10:
echo "Outubro";
case 11:
echo "Novembro";
case 12:
echo "Dezembro";
}
?>
Oi, tudo bem ?
Usar switch para essa tarefa não é uma boa solução.
De qualquer forma, como acredito que seja um exercício de lógica, segue algumas explicações sobre esse código:
Primeiramente, o erro do seu código acontece porquê você está definindo um octal que não existe( inválido ).
Quando você especifica um inteiro literal começando com zero no PHP, ele é tratado como base 8. Veja:
https://www.php.net/manual/pt_BR/language.types.integer.php
Assim, para esse código não dar erro, você precisa retirar os zeros a esquerda. Porém, esse código também está sem os breaks e, por isso, não vai funcionar conforme o esperado. Por exemplo, se você executar o código em Abril, a saída será parecida com isso:
AbrilMaioJunhoJulhoAgostoSetembroOutubroNovembroDezembro .
Veja:
https://www.php.net/manual/pt_BR/control-structures.switch.php
Explicado isso, uma solução melhor, seria colocar os meses em um array e pegar os meses pelo index.
Caso não seja um exercício de lógica, você pode configurar os locales e usar o formato 'F' da função date.
Veja:
https://www.php.net/manual/pt_BR/function.date.php