将if语句添加到变量中

时间:2015-05-03 20:06:22

标签: 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 && 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;

4 个答案:

答案 0 :(得分:2)

改变这个:

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

到此:

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

PHP Assignment Operators

 $b = "Hello"; // string  variable `$b` now has the value Hello 

PHP Comparison Operators

$a == $b; //    Equal   TRUE if $a is equal to $b after type juggling.
$a === $b; //   Identical   TRUE if $a is equal to $b, and they are of the same type. 

我的其他代码对我来说不了解,但函数(strpos($link,'en/bruk/category'))不应该在引号内,或者它们会被视为字符串。

答案 1 :(得分:0)

将您的代码更改为

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

需要使用==进行比较 和==作业

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

我希望您了解=====

之间的区别

答案 2 :(得分:0)

您已将作业(=)与比较(==)混淆。

这里你实际上并没有比较这些值:

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

字符串分配给变量。 (并且分配将始终评估为true,因此此if语句将始终为true,但不包括该点。)所以此if语句不是&{实际上,如果有任何事情是真的,它只是分配一个变量。

然后你比较这些:

$ifStmt == "strp...

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

因此,$ifStmt没有分配任何内容。所以这不会输出任何东西:

echo "if statement is ".$ifStmt;

结论:切换===用法。一个等号分配给变量,两个等号比较变量。

答案 3 :(得分:0)

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

这是你错的地方。你首先需要看看作业操作员 PHP使用的许多比较运算符中有两个是' ==' (即相等)和' ===' (即相同)。两者之间的区别在于' =='应该用来检查两个操作数的值是否相等。另一方面,' ==='检查值以及操作数的类型。 让我用一些例子来解释一下:
' ==' (等于):

if("22" == 22) echo "YES";   
 else echo "NO";   

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

    if("22" === 22) echo "YES";   
    else echo "NO";  

我们得到的结果是" NO"。原因是虽然两个操作数的值相同,但它们的类型不同," 22" (带引号)是一个字符串,而22(不带引号)是一个整数。但是,如果我们将上面的代码更改为以下内容:

   if("22" === (string)22) echo "YES";  
   else echo "NO";   

然后,结果将是"是"。请注意,我们将右操作数的类型更改为与左操作数(即字符串)相同的字符串。现在,左右操作数的类型和值是相同的,因此两个操作数是相同的。 简而言之,无论何时您想要比较值,以及您将使用的操作数类型,==='否则你使用' =='。 而且' ='意味着只需将正确的部分分配到左侧部分。

 $url="Right_part";