Ví dụ đầu tiên của bạn chỉ đơn giản là sai. Bạn cần elseif
thay vì chỉ else
.
Nếu bạn sử dụng if..elseif...
hoặc switch
chủ yếu là vấn đề ưu tiên. Hiệu suất là như nhau.
Tuy nhiên, nếu tất cả các điều kiện của bạn thuộc loại x == value
với x
giống nhau trong mọi điều kiện, switch
thường có ý nghĩa. Tôi cũng chỉ sử dụng switch
nếu có nhiều hơn ví dụ: Hai điều kiện.
Một trường hợp trong đó switch
thực sự mang lại cho bạn lợi thế hiệu suất là nếu phần biến là một cuộc gọi chức năng:
switch[some_func[]] {
case 1: ... break;
case 2: ... break;
}
Sau đó
if[some_func[] == 1] {}
elseif[some_func[] == 2] {}
1 chỉ được gọi một lần trong khi vớiif[some_func[] == 1] {}
elseif[some_func[] == 2] {}
Nó sẽ được gọi là hai lần - bao gồm các tác dụng phụ có thể xảy ra của chức năng xảy ra hai lần. Tuy nhiên, bạn luôn có thể sử dụng
if[some_func[] == 1] {}
elseif[some_func[] == 2] {}
2 và sau đó sử dụng if[some_func[] == 1] {}
elseif[some_func[] == 2] {}
3 trong các điều kiện if[some_func[] == 1] {}
elseif[some_func[] == 2] {}
4 của bạn - để bạn có thể tránh được vấn đề này.Một trường hợp bạn không thể sử dụng công tắc là khi bạn có điều kiện phức tạp hơn - switch
chỉ hoạt động cho
if[some_func[] == 1] {}
elseif[some_func[] == 2] {}
6 với if[some_func[] == 1] {}
elseif[some_func[] == 2] {}
7 là một giá trị không đổi.cannot use switch at all is when you have more complex conditions - switch
only works for if[some_func[] == 1] {}
elseif[some_func[] == 2] {}
6 with if[some_func[] == 1] {}
elseif[some_func[] == 2] {}
7 being a
constant value.
$ n -= 6;
$ iter = 500000; | |
$ start = microtime [true];iter = 500000; | |
$ n = 0;start = microtime[true]; | |
for [$ c = 0; $ cn = 0; | |
$ i = $ c % 16;$c=0; $c Chủ Đề |