Php 向变量添加if语句

Php 向变量添加if语句,php,Php,将if语句分配给变量时遇到问题。我是PHP新手,似乎无法分配if语句。变量一直显示为空。我写错了吗: if ($url="http://test.co.uk") { $ifStmt == "strpos($link,'en/bruk/category') && strpos($link, 'store-locator')==false " . " && strpos($link, 'accessibility')==false &&

将if语句分配给变量时遇到问题。我是PHP新手,似乎无法分配if语句。变量一直显示为空。我写错了吗:

if ($url="http://test.co.uk") {
  $ifStmt == "strpos($link,'en/bruk/category') && strpos($link, 'store-locator')==false " .
       " && strpos($link, 'accessibility')==false && strpos($link, 'terms-conditions')==false  " .
       " && strpos($link, 'site-map')==false && strpos($link, 'write-a-review')==false " .
       " && strpos($link, 'press')==false && strpos($link, 'burton-menswear-apps')==false " .
       " && strpos($link, 'black-friday')==false && strpos($link, 'military-discount')==false " . 
       " && strpos($link, 'gift-card')==false && strpos($link, 'student-discount')==false " .
       " && strpos($link, 'formal-hire')==false && strpos($link, 'information-pages')==false " .
       " && strpos($link, 'responsibilities')==false && strpos($link, 'affiliates')==false " .
       " && strpos($link, 'featurearchive')==false";

}else{



$ifStmt == "strpos($link,'en/bruk/category') && strpos($link, 'evans-on-the-go')==false " .
       " && strpos($link, 'CatalogNavigationSearchResultCmd')==false && strpos($link, 'store-locator')==false " .
       " && strpos($link, 'LogonForm')==false && strpos($link, 'evans-card')==false " .
       " && strpos($link, 'delivery-landing-page')==false && strpos($link, 'accessibility')==false  " .
       " && strpos($link, 'newsletter-sign-up')==false && strpos($link, 'evans-on-the-go')==false " .
       " && strpos($link, 'evans-shape-hub')==false && strpos($link, 'new-lower-price')==false " .
       " && strpos($link, 'hpwk35')==false";


}
echo "if statement is ".$ifStmt;
将代码更改为

 if ($url=="http://test.co.uk") {  
     $ifStmt = "strpos($link,
比较时需要使用
==
和分配的
==

您使用赋值而不是==并且使用比较而不是赋值

我希望您知道
==
===

之间的区别更改此项:

if ($url="http://test.co.uk") {
  $ifStmt ==
为此:

if ($url === "http://test.co.uk") {
  $ifStmt =



我不知道代码的其余部分,但是函数
(strpos($link,'en/bruk/category')
不应该在引号内,否则它们将被视为字符串。

您将赋值(
=
)与比较(
=
)混淆了

在这里,您实际上并不是在比较这些值:

if ($url="http://test.co.uk")
您正在将字符串分配给变量。(赋值将始终计算为
true
,因此此
if
语句将始终为
true
,但这不是重点。)因此此
if
语句实际上不是在测试任何东西是否为true,它只是在赋值一个变量

然后比较这些:

首先,如果该变量从未首先定义,那么这将失败。因为没有什么可比的。但更重要的是,这种比较没有任何作用。它测试两件事是否相等,但对测试结果没有任何影响

因此,
$ifStmt
从未分配任何内容。所以这不会输出任何内容:

echo "if statement is ".$ifStmt;
结论:交换你的
=
=
用法。一个等号分配给一个变量,两个等号比较变量

 if ($url=="http://test.co.uk") { 
  $ifStmt =
这就是你错的地方。你需要先看看赋值运算符。
PHP使用的许多比较运算符中有两个是“==”(即相等)和“==”(即相同)。两者之间的区别在于,应使用“==”检查两个操作数的值是否相等。另一方面,'=='检查值以及操作数的类型。 让我用一些例子进一步解释:
“=”(相等):

上面的代码将打印“是”。原因是操作数的值相等。而当我们运行下面的示例代码时: “=”(相同):

我们得到的结果是“不”。原因是,尽管两个操作数的值相同,但它们的类型不同,“22”(带引号)是字符串,而22(不带引号)是整数。但如果我们将上述代码更改为以下代码:

   if("22" === (string)22) echo "YES";  
   else echo "NO";   
然后,结果将是“是”。请注意,我们将右操作数的类型更改为与左操作数相同的字符串(即字符串)。现在,左操作数和右操作数的类型和值都相同,因此两个操作数都相同。 简而言之,每当您想要比较值以及操作数类型时,您都将使用“==”,否则将使用“==”。 而“=”意味着简单地将右侧部分分配给左侧部分

 $url="Right_part";

您试图实现什么?这个问题的区别是什么:?我试图在基于if的变量内创建if语句。我这样做是为了在代码中进一步显示if语句并运行它。但是,当我通过在if check use==和for assignment use=中回显var.来测试它时,它总是返回空白,谢谢你的帮助@David
 if ($url=="http://test.co.uk") { 
  $ifStmt =
if("22" == 22) echo "YES";   
 else echo "NO";   
    if("22" === 22) echo "YES";   
    else echo "NO";  
   if("22" === (string)22) echo "YES";  
   else echo "NO";   
 $url="Right_part";