gpt4 book ai didi

php 在函数中测试 isset() 和 empty()

转载 作者:行者123 更新时间:2023-12-02 22:11:30 25 4
gpt4 key购买 nike

我试图将 isset() 和 empty() 封装在一个函数中。

它在我的家庭开发服务器上运行良好(Apache 2.4.3,WinXP 下的 PHP 5.2.17)。当我将它移植到运行 Fedora 的大学 Linux 机器上时,我收到了关于未定义索引的通知。

我检查了我家用电脑上的 php.ini,错误报告设置为全部。我把 error_reporting(E_ALL);在我的 PHP 脚本中尝试复制错误。它没有发生。

问题 1:为什么我在家用开发电脑上收不到通知?

这是我的功能:

<?php
function there($s) {
if (! isset($s)) {
return false;
}
if (empty($s)) {
return false;
}
return true;
}
?>

这里我测试一个 session 变量是否存在:

if (! there($_SESSION['u'])) {
$_SESSION['u'] = new User();
}

我切换了函数,以便在测试 isset() 之前测试 empty(),认为这样可以避免收到通知。我还没有机会在学校测试这个。

问题 2:如果变量未定义或未设置,empty() 通常会避免发出通知吗?

问题 3:我可以使用我的 there() 函数来执行此操作,还是仅通过传递 undefined 或 unset 参数就可以得到通知?

最佳答案

issetempty 不是函数,它们是语言结构。因此,他们可以通过读取文字变量名而不是尝试访问值来逃脱惩罚。您定义的任何函数都不能这样做。

考虑到这一点,没有必要对两者都进行测试。 emptyisset 的超集,因此您实际上只需要检查 empty

关于php 在函数中测试 isset() 和 empty(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15230233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com