Php 为什么我的输出为;这是字符串;而不是",;这不是字符串;

Php 为什么我的输出为;这是字符串;而不是",;这不是字符串;,php,Php,我将下面的代码输出为“thisastring”而不是“thisanotastring”,为什么 使用is_string()查找变量的类型是否为string <?php $abc=0; if(is_string($abc)) { echo "This is string"; } else { echo "This is not a string"; } ?> 使用is_string()查找变量

我将下面的代码输出为“thisastring”而不是“thisanotastring”,为什么


使用
is_string()
查找变量的类型是否为string

<?php
    $abc=0;
    if(is_string($abc))
    {
        echo "This is string";
    }
    else
    {
        echo "This is not a string";
    }
?>

使用
is_string()
查找变量的类型是否为string

<?php
    $abc=0;
    if(is_string($abc))
    {
        echo "This is string";
    }
    else
    {
        echo "This is not a string";
    }
?>

最好使用
=
进行比较,这也会检查比较的变量

这将如预期的那样起作用。
有关PHP类型比较表,请参阅。在这里您可以看到,例如
0
(int)和
“php”
(string)之间的“与==”的松散比较将返回
true
。这不是人们所期望的。

最好使用
==
进行比较,这也会检查比较的变量

这将如预期的那样起作用。 有关PHP类型比较表,请参阅。在这里您可以看到,例如
0
(int)和
“php”
(string)之间的“与==”的松散比较将返回
true
。这不是人们所期望的。

根据:

如果将数字与字符串进行比较,或者比较涉及数字字符串,则会将每个字符串转换为数字,并以数字形式执行比较

“str”
在使用
=
运算符将它们进行比较时,会转换为
0
。要使代码正常工作,必须使用
==
运算符

当比较为===或!==时,不会发生类型转换因为这涉及到比较类型和值

根据:

如果将数字与字符串进行比较,或者比较涉及数字字符串,则会将每个字符串转换为数字,并以数字形式执行比较

“str”
在使用
=
运算符将它们进行比较时,会转换为
0
。要使代码正常工作,必须使用
==
运算符

当比较为===或!==时,不会发生类型转换因为这涉及到比较类型和值


Use is_string()函数或数据类型检查Use===$abc=0//false。第一个条件返回false。重复的和许多其他的使用is_string()函数或数据类型检查使用==$abc=0//false。第一个条件返回false。重复和许多其他条件,但它在内部是如何工作的?我知道==和===之间的区别,但我想知道这段代码在内部是如何工作的。如果使用
==
,则将进行类型转换。通过这种方式,
“str”
被转换为0。只要尝试
var\u dump((int)“foo”)
,您就会看到它将输出
0
。然后将该值与
0
进行比较,并返回true。使用
==
将不会进行类型转换。如果你真的想知道发生了什么,你应该看看php源代码本身。。!我的怀疑很清楚,但它内部是如何工作的?我知道==和===之间的区别,但我想知道这段代码在内部是如何工作的。如果使用
==
,则将进行类型转换。通过这种方式,
“str”
被转换为0。只要尝试
var\u dump((int)“foo”)
,您就会看到它将输出
0
。然后将该值与
0
进行比较,并返回true。使用
==
将不会进行类型转换。如果你真的想知道发生了什么,你应该看看php源代码本身。。!我的怀疑很清楚,但它内部是如何工作的?我知道is_string(),但我想知道这段代码在内部是如何工作的。但它在内部是如何工作的?我知道is_string(),但我想知道这段代码在内部是如何工作的。但是为什么str会转换为0呢?为什么不用其他号码呢。如果我写$abc=“1”,那么它会转换为数字1,但为什么str会转换为0。PHP中的类型转换就是这样工作的。如果字符串以有效的数字数据开头,则将使用该值。否则,该值将为0(零)。看一看谢谢,先生。我的疑问很清楚。但是为什么str被转换成0呢?为什么不用其他号码呢。如果我写$abc=“1”,那么它会转换为数字1,但为什么str会转换为0。PHP中的类型转换就是这样工作的。如果字符串以有效的数字数据开头,则将使用该值。否则,该值将为0(零)。看一看谢谢先生我的疑问很清楚。。
if($abc === "str")
{
    echo "This is string";
}
else
{
    echo "This is not a string";
}