有没有在php中编写多个条件的快捷方式?

发布于 2024-12-27 20:40:26 字数 323 浏览 5 评论 0原文

是否有更短的编写方法(不使用正则表达式或字符串匹配函数)?

if($page=='page1.php' || $page=='page2.php' || $page=='page3.php' || $page=='page4.php'){ do something...}

我正在寻找类似的东西:

if($page==('page1.php', 'page2.php', 'page3.php', 'page4.php')){do something...}

但我知道这是不正确的。有什么建议吗?

Is there a shorter way of writing this (without using regex or string-matching functions)?

if($page=='page1.php' || $page=='page2.php' || $page=='page3.php' || $page=='page4.php'){ do something...}

I'm looking for something like:

if($page==('page1.php', 'page2.php', 'page3.php', 'page4.php')){do something...}

but I know that isn't correct. Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

倾`听者〃 2025-01-03 20:40:27

使用switch,比复杂的if条件更具可读性

switch ($page){
  case 'page1.php':
  case 'page2.php':
  case 'page3.php':
  case 'page4.php':
    // do something
    break;

  default:
    //else
}

Use switch, more readable than a complex if condition

switch ($page){
  case 'page1.php':
  case 'page2.php':
  case 'page3.php':
  case 'page4.php':
    // do something
    break;

  default:
    //else
}
怎会甘心 2025-01-03 20:40:27

得到一个不一样的答案:

if (preg_match('"^page[1-4]\.php$"', $page)) {

现在这对于您的综合示例来说是有意义的,并且如果您确实有要测试的范围或其他结构可供参考。大多数情况下它只是碰巧变得更紧凑。

To have an answer that is not same old same old:

if (preg_match('"^page[1-4]\.php$"', $page)) {

Now this makes sense for your synthetic example, and if you really have ranges of something to test against, or some other structure to go by. Mostly it just happens to be compacter then.

爱已欠费 2025-01-03 20:40:27

我认为一种可能的解决方案是编写函数,将 page1.php、page2.php 等作为参数,如果语句正确则返回 true。

I think one possible solutions is writing function that as arguments takes page1.php, page2.php etc. and return true if statement is correct.

岁月流歌 2025-01-03 20:40:27

更新

抱歉,这个脑残答案..错过了第一行。如上所述,您可以构建一个页面数组并使用 in_array() ,

$pagelist = array('page1.php','page2.php','page3.php','page4.php','page5.php')
if (in_array($page,$pagelist)) {
    //do something
}

它更优雅一点,并且肯定会清理 if 语句,但不会减少代码。我能想到的唯一好处是您可以从外部源构建 $pagelist 数组,并且使用它可能会更有效?

UPDATE

Sorry for the brain dead answer .. missed the first line. as stated above you could build an array of pages and user in_array()

$pagelist = array('page1.php','page2.php','page3.php','page4.php','page5.php')
if (in_array($page,$pagelist)) {
    //do something
}

it's a bit more elegant and definately cleans up the if statement, but doesn't do much to reduce the code. the only benefit i can think is that you could build the $pagelist array from an external source and using it might be more efficient?

━╋う一瞬間旳綻放 2025-01-03 20:40:26

尝试in_array

if (in_array($page, array('page1.php', 'page2.php', 'page3.php'))) { ... }

http://php.net/manual /en/function.in-array.php

Try in_array:

if (in_array($page, array('page1.php', 'page2.php', 'page3.php'))) { ... }

http://php.net/manual/en/function.in-array.php

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文