我无法将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;
答案 0 :(得分:2)
改变这个:
if ($url="http://test.co.uk") {
$ifStmt ==
到此:
if ($url === "http://test.co.uk") {
$ifStmt =
$b = "Hello"; // string variable `$b` now has the value Hello
$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";