首页 > 后端开发 > php教程 > 如何在 PHP 中使用复杂表达式正确初始化静态变量?

如何在 PHP 中使用复杂表达式正确初始化静态变量?

Linda Hamilton
发布: 2024-11-20 00:37:03
原创
880 人浏览过

How Can I Properly Initialize Static Variables with Complex Expressions in PHP?

PHP 中静态变量的初始化

PHP 在初始化静态变量时遇到了挑战,因为它无法在初始化器中计算非平凡的表达式。考虑以下代码:

private static $dates = array(
  'start' => mktime( 0,  0,  0,  7, 30, 2009),  
  'end'   => mktime( 0,  0,  0,  8,  2, 2009),  
  'close' => mktime(23, 59, 59,  7, 20, 2009),  
  'early' => mktime( 0,  0,  0,  3, 19, 2009),  
);
登录后复制

此代码会触发解析错误,因为 PHP 需要在赋值运算符后面有一个“)”,如以下错误消息所示:

Parse error: syntax error, unexpected '(', expecting ')' in /home/user/Sites/site/registration/inc/registration.class.inc on line 19
登录后复制

To为了规避这个限制,我们可以采用替代方法:

1。延迟初始化

定义类后,我们可以使用单独的代码块显式初始化静态变量:

class Foo {
  static $bar;
}
Foo::$bar = array(…);
登录后复制

2.静态初始化方法

我们可以在类中定义静态方法来初始化变量:

class Foo {
  private static $bar;
  static function init()
  {
    self::$bar = array(…);
  }
}
Foo::init();
登录后复制

注意: PHP 5.6 引入了对某些表达式的支持在静态变量初始值设定项中,但此功能是有限的。

以上是如何在 PHP 中使用复杂表达式正确初始化静态变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板