Php 设置$var意味着什么?

Php 设置$var意味着什么?,php,terminology,Php,Terminology,在PHP或通用编程中设置或不设置$var是什么意思 我在这里找到了一些比较表,但有时它让我感到困惑 这是否意味着变量在声明时被设置,在未声明或声明但未赋值时被赋值或未赋值?isset是PHP中的一个函数,如果变量(在本例中,$var)被赋值,它将返回true。如果已创建变量但未分配任何内容,其值为null或undefined,则将返回false。基本上,isset$var表示这个变量是否可以安全使用 使现代化 为了解释空值和未定义值之间的差异,Jonathan Kuhn在上面的提交中提供了以下代

在PHP或通用编程中设置或不设置$var是什么意思

我在这里找到了一些比较表,但有时它让我感到困惑

这是否意味着变量在声明时被设置,在未声明或声明但未赋值时被赋值或未赋值?

isset是PHP中的一个函数,如果变量(在本例中,$var)被赋值,它将返回true。如果已创建变量但未分配任何内容,其值为null或undefined,则将返回false。基本上,isset$var表示这个变量是否可以安全使用

使现代化 为了解释空值和未定义值之间的差异,Jonathan Kuhn在上面的提交中提供了以下代码

<?php
//test 1 is defined, but has a value of null. isset will return false, use causes no error.
$test1 = null;
var_dump($test1);
var_dump(isset($test1));

echo "\n----------\n\n";

//test2 is defined with a string value. isset will return true
$test2 = "test";
var_dump($test2);
var_dump(isset($test2));

echo "\n----------\n\n";

//test3 is not defined, isset returns false and use causes error.
var_dump($test3);
var_dump(isset($test3));
isset是PHP中的一个函数,如果变量(在本例中为$var)被赋值,它将返回true。如果已创建变量但未分配任何内容,其值为null或undefined,则将返回false。基本上,isset$var表示这个变量是否可以安全使用

使现代化 为了解释空值和未定义值之间的差异,Jonathan Kuhn在上面的提交中提供了以下代码

<?php
//test 1 is defined, but has a value of null. isset will return false, use causes no error.
$test1 = null;
var_dump($test1);
var_dump(isset($test1));

echo "\n----------\n\n";

//test2 is defined with a string value. isset will return true
$test2 = "test";
var_dump($test2);
var_dump(isset($test2));

echo "\n----------\n\n";

//test3 is not defined, isset returns false and use causes error.
var_dump($test3);
var_dump(isset($test3));

基本上,未声明、未赋值或未设置NULL的变量

要证明比较表,可以使用isset进行测试


基本上,未声明、未赋值或未设置NULL的变量

要证明比较表,可以使用isset进行测试


“这个答案只是为了进一步澄清php的truty/false和isset函数,”thatguy发布了一个很好的答案,这只提供了一些示例

检查该链接以获取此输出的代码

使用以下变量从循环中获得此输出:

$var1 = 0;
$var2 = 1;
$var3 = null;
$var4;
$var5 = false;
$var6 = true;



Examples about isset(), and truthy/falsy comparitions
-----------------------------------------------------
About isset() function
----------------------
var1 is declared and has a value, value = 0
var2 is declared and has a value, value = 1
var3 is declared with no value or is null
var4 is declared with no value or is null
var5 is declared and has a value, value = 
var6 is declared and has a value, value = 1
----------------------
About true/false cases
----------------------
var1 is declared with no value, is null or equal to zero or false
var2 is declared and has a value, value = 1
var3 is declared with no value, is null or equal to zero or false
var4 is declared with no value, is null or equal to zero or false
var5 is declared with no value, is null or equal to zero or false
var6 is declared and has a value, value = 1
About asking to a never ever writen variable
--------------------------------------------
no idea where this variable is
no idea where this variable is

“这个答案只是为了进一步澄清php的truty/false和isset函数,”thatguy发布了一个很好的答案,这只提供了一些示例

检查该链接以获取此输出的代码

使用以下变量从循环中获得此输出:

$var1 = 0;
$var2 = 1;
$var3 = null;
$var4;
$var5 = false;
$var6 = true;



Examples about isset(), and truthy/falsy comparitions
-----------------------------------------------------
About isset() function
----------------------
var1 is declared and has a value, value = 0
var2 is declared and has a value, value = 1
var3 is declared with no value or is null
var4 is declared with no value or is null
var5 is declared and has a value, value = 
var6 is declared and has a value, value = 1
----------------------
About true/false cases
----------------------
var1 is declared with no value, is null or equal to zero or false
var2 is declared and has a value, value = 1
var3 is declared with no value, is null or equal to zero or false
var4 is declared with no value, is null or equal to zero or false
var5 is declared with no value, is null or equal to zero or false
var6 is declared and has a value, value = 1
About asking to a never ever writen variable
--------------------------------------------
no idea where this variable is
no idea where this variable is

这取决于你所说的集合是什么意思

如果您的意思是我可以在代码中使用变量,而不生成未定义的变量通知,那么当变量有任何值时就会设置变量。在PHP中,如果不给变量赋值,就不能声明变量。例如:

<?php

$var;
<?php

$varX = null;
$varY = 0;
class Example
{
    public $var;

}

$ex = new Example;
var_dump($ex->var);
通过这些变量,两者都被定义。您可以在代码中使用它们,而不会得到未定义的变量通知。打印目标定义变量;将显示数组[varX]=>0。但即使定义了$varX,isset$varX也会返回false,因为它有一个空值

为变量赋值后,除非使用unset$var显式取消设置变量,否则变量将保持在其范围内定义

唯一可以声明变量而不显式赋值的情况是当它是类属性时。例如:

<?php

$var;
<?php

$varX = null;
$varY = 0;
class Example
{
    public $var;

}

$ex = new Example;
var_dump($ex->var);

这里$var在声明时隐式地被赋值为null,在代码中引用它不会引起未定义变量的注意。

这取决于set的含义

如果您的意思是我可以在代码中使用变量,而不生成未定义的变量通知,那么当变量有任何值时就会设置变量。在PHP中,如果不给变量赋值,就不能声明变量。例如:

<?php

$var;
<?php

$varX = null;
$varY = 0;
class Example
{
    public $var;

}

$ex = new Example;
var_dump($ex->var);
通过这些变量,两者都被定义。您可以在代码中使用它们,而不会得到未定义的变量通知。打印目标定义变量;将显示数组[varX]=>0。但即使定义了$varX,isset$varX也会返回false,因为它有一个空值

为变量赋值后,除非使用unset$var显式取消设置变量,否则变量将保持在其范围内定义

唯一可以声明变量而不显式赋值的情况是当它是类属性时。例如:

<?php

$var;
<?php

$varX = null;
$varY = 0;
class Example
{
    public $var;

}

$ex = new Example;
var_dump($ex->var);

在这里,$var在声明时隐式地被赋值为null,在代码中引用它不会引起未定义变量的注意。

PHP不会声明变量。@thatguy当然,请再次查看我的注释。我提到了什么时候是真的,而不是假。@thatguy在这一点上会有一个隐式的NULL值,它仍然使他的语句为真。@thatguy如果你试图使用一个尚未定义的变量,它的值将为NULL,并发出一个通知错误。另外,Undefined是javascript的东西,从技术上讲不是php。php中确实没有未定义的状态。它不是用隐式空值定义的,如果在定义之前使用它,请注意错误,或者是用一些可能包含空值的值定义的,即使isset为此返回false。@thatguy是的,技术上未定义的确实存在,因为变量尚未定义,但是undefined在php中并不像在JavaScript中那样是一个真正的类型,我假设您指的是一个特定的类型,如果不是,那么忽略JS部分。这只是意味着变量尚未声明或在某个poi处未设置
新界。以下是null和undefined之间的区别:PHP不声明变量。@thatguy当然,再看看我的评论。我提到了什么时候是真的,而不是假。@thatguy在这一点上会有一个隐式的NULL值,它仍然使他的语句为真。@thatguy如果你试图使用一个尚未定义的变量,它的值将为NULL,并发出一个通知错误。另外,Undefined是javascript的东西,从技术上讲不是php。php中确实没有未定义的状态。它不是用隐式空值定义的,如果在定义之前使用它,请注意错误,或者是用一些可能包含空值的值定义的,即使isset为此返回false。@thatguy是的,技术上未定义的确实存在,因为变量尚未定义,但是undefined在php中并不像在JavaScript中那样是一个真正的类型,我假设您指的是一个特定的类型,如果不是,那么忽略JS部分。这只是意味着变量尚未声明或在某个点未设置。以下是null和undefined之间的区别:没问题。很高兴我能帮忙!没问题。很高兴我能帮忙!