Я пытаюсь присвоить $datestring
в день недели - например. Воскресенье, понедельник и т.д., Потому что значение %w
является числовым - это означает, что 1 - понедельник, 2 - и т.д.
Это проект codeignitor, и мой код запускает первый условный оператор, будь то true или false! Пожалуйста помоги.
public function data()
{
$datestring = "%w";
$time = time();
echo mdate($datestring, $time);
if ($datastring = "1") {
echo "monday";
}
else if ($datastring = "2") {
echo "tuesday";
}
else if ($datastring = "3") {
echo "wednesday";
}
else if ($datastring = "4") {
echo "thursday";
}
else if ($datastring = "5") {
echo "friday";
}
else if ($datastring = "6") {
echo "saturday";
}
else if ($datastring = "7") {
echo "sunday";
}
return;
}
Для сравнения вам нужно double ==
, потому что =
назначено. И присваивать переменной "1" переменной $ datastring всегда верно, поэтому всегда сначала, если это правда. Измените его на:
if ($datastring == "1") {
echo "monday";
}
else if ($datastring == "2") {
echo "tuesday";
}
else if ($datastring == "3") {
echo "wednesday";
}
else if ($datastring == "4") {
echo "thursday";
}
else if ($datastring == "5") {
echo "friday";
}
else if ($datastring == "6") {
echo "saturday";
}
else if ($datastring == "7") {
echo "sunday";
}
Изменение: я также добавил инструкцию else if
для воскресенья. Вы можете использовать простое else
в этом случае, потому что не осталось других параметров (поскольку $ datastring может содержать только числа от 1 до 7.
Чтобы сделать его более чистым, я бы использовал switch
типа
switch ($datastring) {
case 1:
$day = "monday";
break;
case 2:
$day = "tuesday";
break;
case 3:
$day = "wednesday";
break;
case 4:
$day = "thursday";
break;
case 5:
$day = "friday";
break;
case 6:
$day = "saturday";
break;
case 7:
$day = "sunday";
break;
default:
$day = "unknown day";
break;
}
echo $day;