Heim > Backend-Entwicklung > PHP-Tutorial > php 在使用if判断的时候 如果是多个逻辑或(||)条件 有没有简写的方法

php 在使用if判断的时候 如果是多个逻辑或(||)条件 有没有简写的方法

WBOY
Freigeben: 2016-06-06 20:39:32
Original
2517 Leute haben es durchsucht

比如

<code> $order['status'] == 9 || $order['status'] == 10 || $order['status'] == 11
</code>
Nach dem Login kopieren
Nach dem Login kopieren

类似这种的话,如果两三个还勉强可以接受,但是如果还有 3 个以上的条件我就无法接受这种写法了。
后来使用了 in_array()的方法相对简短一点了。

想来请教下 php 中 有没有比 in_array()再好点的写法了。谢谢

回复内容:

比如

<code> $order['status'] == 9 || $order['status'] == 10 || $order['status'] == 11
</code>
Nach dem Login kopieren
Nach dem Login kopieren

类似这种的话,如果两三个还勉强可以接受,但是如果还有 3 个以上的条件我就无法接受这种写法了。
后来使用了 in_array()的方法相对简短一点了。

想来请教下 php 中 有没有比 in_array()再好点的写法了。谢谢

酱?

<code>php</code><code>switch($order['status']){
    case FINISHED:
    case PENDING:
    case PROCESSING:
        //logic
        break;
    default:
        break;
}
</code>
Nach dem Login kopieren

难道不是 in_array($order['status'], [9, 10, 11])

像你这个例子, 改成switch就行了,简单直观还合理;

如果条件太多无可避免的情况,即只能用if,就算用别的也感觉别扭不对劲的时候, 建议换一种写法:

<code>if ($order['status'] == 9 
    || $order['status'] == 10 
    || $order['status'] == 11) {

}
</code>
Nach dem Login kopieren

我是花括号部另起一行党, 但在这种情况下,也可以

<code>if ($order['status'] == 9 
    || $order['status'] == 10 
    || $order['status'] == 11) 
{

}
</code>
Nach dem Login kopieren

另外建议把字面量常量放在左边。

如果if里的判断条件特别特别长(我见过有些分支需要判断三四个变量,||和&&用了七八个),建议把判断条件写成单独的函数

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage