Как сделать много if

вопросы и ответы по использованию PHP
Ответить
Хозяин Гугла
Сообщения: 42
Зарегистрирован: 19 июн 2019, 19:59

Как сделать много if

Сообщение Хозяин Гугла » 02 июн 2020, 16:33

как сделать, чтобы работало так?
if ($month==01)
{
$month="j";
}
if ($month==02)
{
$month="f";
}
if ($month==03)
{
$month="m";
}
if ($month==04)
{
$month="a";
}
if ($month==05)
{
$month="mm";
}
if ($month==06)
{
$month="jj";
}
if ($month==07)
{
$month="jjj";
}
if ($month==08)
{
$month="aa";
}
if ($month==09)
{
$month="s";
}
if ($month==10)
{
$month="o";
}
if ($month==11)
{
$month="n";
}
if ($month==12)
{
$month="d";
}
выдает ошибку
"Parse error: Invalid numeric literal in Z:\scripts\"

Аватара пользователя
XwebDeveloper
Сообщения: 51
Зарегистрирован: 13 ноя 2017, 12:53

Re: Как сделать много if

Сообщение XwebDeveloper » 02 июн 2020, 17:15

Для того что бы ваш код работал надо сделать так:

if ($month=="01")
{
$month="j";
}
if ($month=="02")
{
$month="f";
}
if ($month=="03")

а вообще для таких ситуаций существует оператор switch:

$month ="02";

switch($month)
{
	case "01": $month="j"; break;
	case "02": $month="f"; break;
	case "03": $month="m"; break;
	case "04": $month="a"; break;
	case "05": $month="mm"; break;
	case "06": $month="jj"; break;
	case "07": $month="jjj"; break;
	case "08": $month="aa"; break;
	case "09": $month="s"; break;
	case "10": $month="o"; break;
	case "11": $month="n"; break;
	case "12": $month="d"; break;
}
echo $month;

Запрос на создание скриптов viewforum.php?f=61

Хозяин Гугла
Сообщения: 42
Зарегистрирован: 19 июн 2019, 19:59

Re: Как сделать много if

Сообщение Хозяин Гугла » 02 июн 2020, 17:47

да-да-да!спасибо!
у меня заработало так, может таким же нубасам, как я - пригодится
//список месяцев из файла, каждая строка отдельный месяц
$month = file("Z:\\shop\\month",FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

//берем первую строчку
switch($month[0])
{
	case "01": $month="j"; break;
	case "02": $month="f"; break;
	case "03": $month="m"; break;
	case "04": $month="a"; break;
	case "05": $month="mm"; break;
	case "06": $month="jj"; break;
	case "07": $month="jjj"; break;
	case "08": $month="aa"; break;
	case "09": $month="s"; break;
	case "10": $month="o"; break;
	case "11": $month="n"; break;
	case "12": $month="d"; break;
}
echo $month;

//удаляем первую строчку в файле
$strNum = 1;
$result = "";
$delLine = 1;
$fp = fopen("Z:\\shop\\month", "r");
while (!feof($fp)) {
    $line = fgets($fp);
    if ($strNum != $delLine) $result .= $line;
    $strNum++;
}
fclose($fp);

$fw = fopen("Z:\\shop\\month", "w");
fwrite($fw, $result);
fclose($fw);

Ответить