Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何比6x或语句做得更好_Php_Smarty - Fatal编程技术网

Php 如何比6x或语句做得更好

Php 如何比6x或语句做得更好,php,smarty,Php,Smarty,我对编程一无所知,我找不到答案,或者我根本不明白答案 不管怎样,这是我的代码。我如何更改它,使其不使用6或语句 {if $smarty.server.REQUEST_URI == '/home-product.php?id_product=1' OR $smarty.server.REQUEST_URI == '/home-product.php?id_product=2' OR $smarty.server.REQUEST_URI == '/home-product.php?id_prod

我对编程一无所知,我找不到答案,或者我根本不明白答案

不管怎样,这是我的代码。我如何更改它,使其不使用6或语句

 {if $smarty.server.REQUEST_URI == '/home-product.php?id_product=1' 
OR $smarty.server.REQUEST_URI == '/home-product.php?id_product=2'
OR $smarty.server.REQUEST_URI == '/home-product.php?id_product=3'
OR $smarty.server.REQUEST_URI == '/home-product.php?id_product=4'
OR $smarty.server.REQUEST_URI == '/home-product.php?id_product=5'
OR $smarty.server.REQUEST_URI == '/home-product.php?id_product=6'}
$num=substr($smarty.server.REQUEST\u URI,-1);
如果($num>0和$num<7){/*TRUE*/}

显然,这是PHP而不是Smarty语法。

在我看来,您不应该在Smarty中做这样的事情。您应该在PHP中使用,例如在数组中使用
。Smarty仅用于显示数据,不用于此类比较

您还可以将Smarty语法用作:

{assign var="test" value ="5"}

{if in_array($test, array(1,2,5,8))}
is in array
{else}
is not in array
{/if}
编辑

在这种情况下,可能很简单:

{if in_array($smarty.server.REQUEST_URI, 
    array(
    '/home-product.php?id_product=1',
    '/home-product.php?id_product=2',
    '/home-product.php?id_product=3',
    '/home-product.php?id_product=4',
    '/home-product.php?id_product=5',
    '/home-product.php?id_product=6'
    ))}
is in array
{else}
is not in array
{/if}

您可以直接在Smarty中访问GET变量

{if in_array($smarty.get.id_product, range(1,6))}
    is in array
{else}
    is not in array
{/if}

你最好在代码审查时问这个问题:
{if in_array($smarty.server.REQUEST_URI,array('url1','url2',…,'url6')}
嗨,帕特里克,我试图使用你的解决方案,但它对我不起作用,所以显然我做错了什么。你能告诉我正确的方向吗?{if in_array($smarty.server.REQUEST_URI,array)('/home-product.php?id_-product=1'、'/home-product.php?id_-product=2'、'/home-product.php?id_-product=3'、'/home-product.php?id_-product=4'、'/home-product.php?id_-product=5'、/home-product.php?id_-product=6'))具有讽刺意味的是,其中一个标签是PHP,它没有提到他想要Smarty代码。是的,但是为什么你认为在PHP中你可以使用$Smarty.server.REQUEST_URI语法?因为我编写了自己的模板引擎,而不是使用公共的模板引擎,因此我从来没有使用Smarty的经验,所以我给出的代码至少可以让他使用t他提出了一种缩短IF或语句的方法,而没有给出实际的代码。这是一种学习机会。嘿,Marcin,我感谢你尝试帮助我,但我不确定我是否知道如何实现它。下面是我的尝试{assign var=“test”value“$smarty.server.REQUEST_URI”}{IF in_array($test,array(/home-product.php?id_-product=1,/home-product.php?id_-product=2,/home-product.php?id_-product=3,/home-product.php?id_-product=4,/home-product.php?id_-product=5,/home-product.php?id_-product=6))太好了!非常感谢:)
{if in_array($smarty.get.id_product, range(1,6))}
    is in array
{else}
    is not in array
{/if}