PHP 构造函数返回 NULL

2024-05-07

我有这个代码。是否有可能User对象构造函数以某种方式失败,以便$this->LoggedUser被分配了一个NULL构造函数返回后值和对象被释放吗?

$this->LoggedUser = NULL;
if ($_SESSION['verbiste_user'] != false)
  $this->LoggedUser = new User($_SESSION['verbiste_user']);    

假设您使用 PHP 5,您可以在构造函数中抛出异常:

class NotFoundException extends Exception {}

class User {
    public function __construct($id) {
        if (!$this->loadById($id)) {
             throw new NotFoundException();
        }
    }
}

$this->LoggedUser = NULL;
if ($_SESSION['verbiste_user'] != false) {
    try {
        $this->LoggedUser = new User($_SESSION['verbiste_user']);
    } catch (NotFoundException $e) {}
}

为了清楚起见,您可以将其包装在静态工厂方法中:

class User {
    public static function load($id) {
        try {
            return new User($id);
        } catch (NotFoundException $unfe) {
            return null;
        }
    }
    // class body here...
}

$this->LoggedUser = NULL;
if ($_SESSION['verbiste_user'] != false)
    $this->LoggedUser = User::load($_SESSION['verbiste_user']);

顺便说一句,PHP 4 的某些版本允许您在构造函数内将 $this 设置为 NULL,但我认为从未得到正式批准,并且该“功能”最终被删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 构造函数返回 NULL 的相关文章

  • ORDER BY 字段内的 MySQL 子查询。 (没有内连接)

    有很多与此相关的问题 但都具有使用内部联接的相同答案 这 我认为 在这里是不可能的 如果我错了请告诉我 我现在正在做的是调用两个不同的 mysql 查询来获取结果 它工作完美 db gt query SELECT FROM meta WHE
  • 检查php中位字段是否打开的正确方法是什么

    检查位字段是否打开的正确方法是什么 在 php 中 我想检查来自 db mysql 的位字段是否打开 这是正确的方法吗 if bit 1 还有其他方法吗 我看到有人使用代码ord http jameslow com 2008 08 12 m
  • 搜索引擎如何找到相关内容? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Google 在解析网络时如何找到相关内容 例如 Google 使用 PHP 原生 DOM 库来解析内
  • 优雅地处理没有数据的 amcharts

    我想知道我的 dataProvider 是否为空 amCharts绘制时默认为null 我怎样才能动态地处理它 var chart AmCharts makeChart chartdiv theme none type serial dat
  • 如何从 SQL Server 2008 查询结果中删除“NULL”

    我有一个包含 59 列和超过 17K 行的表 很多行都有NULL在某些列中 我想删除NULL以便查询返回空白 而不是NULL 我可以运行一些更新功能来替换所有NULL with 使用 SQL Server 2008R2 Management
  • PHP严格标准:声明应该兼容

    我有以下类层次结构 class O Base class O extends O Base abstract class A Abstract public function save O Base obj class A extends
  • 如何使用 php 下载/打印页面的特定部分

    我有一个 HTML 页面如下 Lorem Ipsum is simply dummy text of the printing and typesetting industry Lorem Ipsum has been the indust
  • 从 smarty 访问 PHP 文件的变量(本地或全局)

    我有一个 php 文件 其中包含一些本地和全局变量 例如 foo 从此文件中调用 smarty 对象 如何在不更改 PHP 文件的情况下从 smarty 脚本访问 foo Thanks 如果你有一个名为 BASE 的常量变量 并且定义如下
  • 从 .phar 存档中提取文件

    对于 Phar 文件 我完全错过了一些东西 我正在安装一个需要 phpunit pdepend 和其他依赖项的项目 我将它们作为 phar 文件获取 但是 我无法使用命令行工具 php 命令 从中提取文件 我用谷歌搜索了这个问题 但没有发现
  • “使用未定义常量”注意,但该常量应该被定义

    共有三个文件 common php controller php 和 user php 文件 common php 如下所示 文件controller php看起来像 文件 user php 如下所示 执行脚本时 会给出通知 注意 使用未定
  • 交换关联数组中的两个项目

    Example arr array apple gt sweet grapefruit gt bitter pear gt tasty banana gt yellow 我想调换一下柚子和梨的位置 这样数组就变成了 arr array ap
  • 在 PHP 中撤销 Google 访问令牌

    正如标题所示 我想以编程方式撤销授予的访问令牌 即在 PHP 中 我发现这个他们的网站 https developers google com identity protocols OAuth2WebServer tokenrevoke 但
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • logcat 中 mSecurityInputMethodService 为 null

    我写了一点android应显示智能手机当前位置 最后已知位置 的应用程序 尽管我复制了示例代码 并尝试了其他几种解决方案 但似乎每次都有相同的错误 我的应用程序由一个按钮组成 按下按钮应该log经度和纬度 但仅对数 mSecurityInp
  • php 错误 fopen(): 文件名不能为空

    发送带有附件代码的电子邮件工作正常 最近我们已将文件传输到另一个托管服务器 idk 发生了什么 它显示以下错误 警告 fopen 第 106 行 home hugerecruitmetnt public html validatecva p
  • CURL 中的 data-urlencode 是什么意思?

    我搜索了很多个小时试图弄清楚 php curl 中的 data urlencode 是什么 我尝试过这个 但我认为这是不对的 xmlpost object1 file https www lob com goblue pdf 在文档中是 d
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • 如何使用 PHPExcel 库从 Excel 获取日期

    我正在尝试使用 PHPExcel 从 Excel 获取日期 但我没有得到日期 我得到的字符串值不是 1970 以来的秒数 我尝试过的代码是 InvDate trim excel gt getActiveSheet gt getCell B

随机推荐

  • 如何在 React 中正确捕获 Materialize-CSS datepicker 值?

    我希望创建一个带有日期选择器 https materializecss com pickers html在我的 React 组件中物化CSS https materializecss com 该表单捕获的字段不多 而且结构相当简单 返回的表
  • 使用webpack输出ES模块

    使用 Rollup 我可以通过简单地设置来输出 ES 模块format选项 es 我怎样才能用 webpack 做同样的事情 如果现在不可能的话 webpack 有计划添加吗 我在里面唯一找到的东西的文档output libraryTarg
  • magrittr 三通管 %T>% 当量

    我正在查看文档中 magrittr 三通管 T gt 的示例 但我并没有立即明白它在做什么 有人可以展示没有三通管的等效代码是什么吗 rnorm 200 gt matrix ncol 2 T gt plot gt plot usually
  • 以编程方式验证 X509 证书和私钥匹配

    我使用以下命令创建了 RSA 密钥对EVP aes 256 cbc 密码 私钥采用 PEM 编码并具有密码 这需要用户输入密码 这是创建私钥的调用 Save private key bio priv BIO new file full as
  • 用nose测试python多处理池代码

    我正在尝试编写测试nose http nose readthedocs org en latest 建立一些东西 使用多处理计算 我有这个目录结构 code tests tests py test py 看起来像这样 import mult
  • 适用于 iPhone 和 Android 的 sip 堆栈

    我正在寻找适用于 Android 和 iPhone 的 SIP 堆栈 我发现了很多类似的问题 有时已经很老了 我不太关心解决方案是商业的 但这是首选 还是开源的 到目前为止我发现 RADVISION 的 Android 商业解决方案 iPh
  • 如何在 jsp 中访问 ModelMap?

    如何从jsp中的ModelMap访问一个对象 以便调用它的方法 目前我收到此错误 Syntax error on token delete this token JSP Java Controller RequestMapping dash
  • Python 为什么变量在函数执行后不改变? [复制]

    这个问题在这里已经有答案了 我正在为我的 CompSci 课程做作业 出现了这个问题 x 6 def fun x y x 2 x y return x fun x 当运行这个时 打印出的值是 36 但是当运行 print x 时 x 仍然是
  • NoSuchMethodError:org.jboss.logging.Logger.debugf

    我正在尝试使 Spring Spring Data Log4J2 堆栈工作 不幸的是 在 My Glassfish 4 1 Server 上部署该工件时 出现以下错误 org springframework beans factory Be
  • Mongodb 中的读自己写的一致性

    首先 这是Pymongo 文档 http api mongodb org python current examples requests html highlight read 20you 20own 20write 默认情况下 当线程首
  • Android - 从选项卡内的活动内切换选项卡

    目前我有一个 TabHost 它实现了 3 个选项卡 每个选项卡包含一个单独的活动 我的问题是如何在位于选项卡主机内的活动之一中的选项卡之间进行切换 我到处寻找但未能找到这个问题的真正答案 经过长时间与这个问题的斗争 我已经找到了在使用基于
  • 正则表达式中的 \z 和 \Z 之间有什么区别以及何时以及如何使用它?

    From http java sun com j2se 1 5 0 docs api java util regex Pattern html http java sun com j2se 1 5 0 docs api java util
  • 如何解决 java.lang.ClassNotFoundException: org.docx4j.jaxb.ri.NamespacePrefixMapper

    我目前正在尝试使用 docx4j 库将文件从 html 转换为 docx 我已经成功地使用 itext5 从 html 转换为 pdf 但现在由于 jaxb 我在尝试转换为 docx 时遇到了异常 我的项目使用maven 所以我尝试导入很多
  • C# 计算LRC(纵向冗余检查)

    我一直在到处研究这个问题 所有 LRC 实现似乎都没有给我正确的答案 花了几天时间后 我决定将我的代码放在这里 看看其他人是否可以发现问题 这是代码 C Input Data 31303030315E315E31303030325E315E
  • 强制下载不同的文件[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • 如何使用 JavaScript 将时间戳字符串转换为本地时间?

    我有一个 JSP 页面 其中我将存储在数据库中的时间戳作为字符串提取 其形式如下Thu Aug 21 2014 22 09 23 GMT 0530 India Standard Time 当然 我可以按原样在页面中显示它 但是我一直在寻找
  • 使用继承的 MVC2 DataAnnotations 验证

    我有一个 NET 2 0 类 其属性被标记为 virtual 我需要在 MVC2 应用程序中使用该类作为模型 因此 我创建了一个继承自 NET 2 0 类的 NET 3 5 类 并将 DataAnnotations 属性添加到新类中的重写属
  • 如何迭代视图的元素

    我有一个带有收音机 输入和按钮的视图 当我单击它时 我想检查所有输入是否包含信息 如何迭代活动中视图的元素并检查每个文本视图是否满足上述要求 谢谢 我在一些目前没有的代码中做了类似的事情 但从记忆中它应该是这样的 假设父视图 LinearL
  • 在 msAccess 中更新失败,但在 dgv C# 中更新成功

    这是我的 btnUpdate 代码 以便 msAccess 进行更新 private void btnUpdate Click object sender EventArgs e string CoString Provider Micro
  • PHP 构造函数返回 NULL

    我有这个代码 是否有可能User对象构造函数以某种方式失败 以便 this gt LoggedUser被分配了一个NULL构造函数返回后值和对象被释放吗 this gt LoggedUser NULL if SESSION verbiste