PHP 中的弱类型:为什么要使用 isset?

2023-06-24php开发问题
8

本文介绍了PHP 中的弱类型:为什么要使用 isset?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

如果我这样做,我的代码似乎可以检查是否为空

It seems like my code works to check for null if I do

if ($tx) 

if (isset($tx))

写的比较难,我为什么要写第二个?

why would I do the second one when it's harder to write?

推荐答案

我想指出,我在这里读到的每个人的回复都应该添加一个警告:

I want to point out that everyone's reponse I've read here should have one caveat added:

"isset() 将在测试已设置为 NULL 的变量时返回 FALSE" (php.net/isset).

这意味着在某些情况下,例如检查 GET 或 POST 参数,使用 isset() 足以判断变量是否已设置(因为它要么是字符串,要么是不会被设置).但是,如果 NULL 是变量的可能值(当您进入对象和更复杂的应用程序时这种情况很常见),isset() 会让您感到无所适从.

This means that in some cases, like checking for a GET or POST parameter, using isset() is enough to tell if the variable is set (because it will either be a string, or it won't be set). However, in cases where NULL is a possible value for a variable, which is fairly common when you get into objects and more complex applications, isset() leaves you high and dry.

例如(使用 PHP 5.2.6 和 Suhosin-Patch 0.9.6.2 (cli) 测试(构建时间:2008 年 8 月 17 日 09:05:31)):

For example (tested with PHP 5.2.6 with Suhosin-Patch 0.9.6.2 (cli) (built: Aug 17 2008 09:05:31)):

<?php
$a = '';
$b = NULL;
var_dump(isset($a));
var_dump(isset($b));
var_dump(isset($c));

输出:

bool(true)
bool(false)
bool(false)

谢谢,PHP!

这篇关于PHP 中的弱类型:为什么要使用 isset?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17