为什么比较不工作

时间:2017-08-25 23:22:32

标签: php

这怎么可能,这四项检查有什么问题? 检查这个的正确方法是什么?

<?php
$url = 'domain.dev';
var_dump(strpos($url, 'admin'));

 if(strpos($url, 'admin') ===  false);
 {
    var_dump($url);
 }       

if(strpos($url, 'admin') !== false);
{
   var_dump($url);
}       

if(strpos($url, 'admin') === true);
{
    var_dump($url);
} 

if(strpos($url, 'admin') == true);
{
    var_dump($url);
}         

这个输出是:

bool(false)
string(10) "domain.dev"
string(10) "domain.dev"
string(10) "domain.dev"
string(10) "domain.dev"

2 个答案:

答案 0 :(得分:0)

使用;语句删除行尾的if

e.g:

 if(strpos($url, 'admin') ===  false)
 {
    var_dump($url);
 } 

答案 1 :(得分:0)

此处正确解释了原因: - Semicolon after if condition in PHP - code still works

;将终止它之后

if,然后在它之后将执行所有内容。

因此,您需要在所有条件结束时删除;: -

<?php
$url = 'domain.dev';
var_dump(strpos($url, 'admin'));

 if(strpos($url, 'admin') ===  false){
    var_dump($url);
 }       

if(strpos($url, 'admin') !== false){
   var_dump($url);
}       

if(strpos($url, 'admin') === true){
    var_dump($url);
} 

if(strpos($url, 'admin') == true){
    var_dump($url);
}

输出: - https://eval.in/850447