У меня есть 3 массива, которые можно установить или нет. Их ключи - это строки.Корпус выключателя Vs. Если .. Else (конкретная задача)
было бы более эффективным, это если ... Else
if(isset($arrayA[ $id ]))
{
if(isset($arrayB[ $id ]))
{
if(isset($arrayC[ $id ]))
{
}
else
{
}
}
else
{
if(isset($arrayC[ $id ]))
{
}
else
{
}
}
}
else
{
if(isset($arrayB[ $id ]))
{
if(isset($arrayC[ $id ]))
{
}
else
{
}
}
else
{
if(isset($arrayC[ $id ]))
{
}
}
}
или переключатель ... Дело, как это?
$ABC = (isset($arrayA[ $id ]) ? "1" : "0") . (isset($arrayB[ $id ]) ? "1" : "0") . (isset($arrayC[ $id ]) ? "1" : "0");
switch($ABC)
{
case "001":
case "010":
case "011":
case "100":
case "101":
case "110":
case "111":
}
Обратите внимание, что случай «000» никогда не будет происходить в моем сценарии.
Предположим, что знаю частоту комбинаций. Чаще -> "110" "111" "010" "100", "101", "001" "011" < - Реже
Во всяком случае "110" и "111" происходят почти всегда. «010» может произойти 1 раз на 10^4 или 10^5 раз кумулятивное событие «110» + «111».
Будет ли это Если ... еще лучшее решение?
if(isset($arrayA[ $id ]) and isset($arrayB[ $id ]))
{
if(isset($arrayC[ $id ]))
{
}
else
{
}
}
else
{
$ABC = (isset($arrayA[ $id ]) ? "1" : "0") . (isset($arrayB[ $id ]) ? "1" : "0") . (isset($arrayC[ $id ]) ? "1" : "0");
switch($ABC)
{
case "001":
case "010":
case "011":
case "100":
case "101":
}
}
Кому это нужно? Это микро-оптимизация. Только не надо. –
его более эффективный в этом случае переключатель, потому что JVM загружает значение для сравнения и выполняет итерацию через таблицу значений, чтобы найти совпадение. Для многих случаев лучше Switch –
Это не Java, а PHP, и для этого типа кода я считаю, что читаемость будет иметь большее значение, чем преждевременная оптимизация. Поэтому выберите тот, который является более читаемым и, если необходимо, прокомментируйте. –