我是空和null概念的新手.虽然我努力了解它们之间的区别,但我更加困惑.我在http://www.tutorialarena.com/blog/php-isset-vs-empty.php上看到了一篇文章但是我仍然没有看到在验证表单时何时使用isset和empty.看到我没有掌握差异,我不想使用不正确的功能,也不能使用其他区域的功能.有人可以提供一些有助于我理解的例子吗?我对编码很陌生,所以如果有人能给我真实世界的例子,并且同时保持它足以让noob遵循,我将不胜感激.
ale*_*lex 18
变量NULL是否没有值,并指向内存中的任何位置.
empty()更像是空的字面意思,例如字符串""是空的,但不是 NULL.
以下内容被认为是空的:
- ""(空字符串)
- 0(0为整数)
- 0.0(0作为浮点数)
- "0"(0作为字符串)
- 空值
- 假
- array()(一个空数组)
- var $ var; (声明的变量,但在类中没有值)
来源.
$a是NULL.
$a = ''是空的,但不是NULL.
如果
$a=''是空但不是NULL,我什么时候使用该empty()功能,何时使用该isset()功能.
isset()将返回FALSE的是指向的变量NULL.
使用empty()时,你明白什么是空的(看上面的列表).
此外,当你说它在记忆中没有任何意义时,这究竟意味着什么?
这意味着$str = ''将在内存中作为长度为0的字符串.
如果是的话$str = NULL,就不会占用任何记忆.
Null是占位符,通常表示"没有关于此的数据可用".
为此使用null只是一种约定,但是相当普遍,只是某些编程语言直接支持约定.这个惯例存在的原因在于IMHO历史上与"指针"有关; 很多时候会定义一个过程来返回一个指向答案的指针,并且如果由于某种原因无法产生答案,它将返回传统上称为Null指针的东西.
空意味着(如果这是一组)它没有成员.这是一个明确的答案,它与"没有关于此的数据可用"非常不同.
在PHP世界中,显然未初始化的变量具有Null值,并且在此类变量上的isset返回FALSE.对于数组和字符串,PHP遵循"空"意味着"没有成员"的约定,尽管数组和字符串在技术上不是设置的.
PHP显然有这个有趣的想法,0和0.0也是"空",由PHP设计.这是滥用"空"恕我直言的概念:个别数字不是集合,所以0不能合理地"空".这只是导致模糊的编程,因为它违反了最不惊讶的原则.我确信PHP设计师会将"零是空数"视为某种模糊的类比; 但是,如果类比是模糊的,为什么还要烦恼呢?但是PHP充满了愚蠢的想法.
小智 5
下表是这些函数将针对不同值返回的内容的简单参考。空格表示函数返回bool(false)。

请参阅此链接以获取更多 https://www.virendrachandak.com/techtalk/php-isset-vs-empty-vs-is_null/