php - 解析错误在 PHP 中设置变量

标签 php variables

我有一个在我的代码中使用的配置类。此类中的一个变量是网站 URL。最近,我向我的服务器添加了 SSL,现在我需要对此进行检查并将“http”或“https”指定为协议(protocol)。

我试过的代码是:

<?php

class Test
{
   public static $blah = (1 == 1) ? 'this' : 'or this';
}

echo Test::$blah;

?>

这会产生一个解析错误。

最佳答案

不幸的是,您不能使用表达式设置默认类变量。您只能使用原始类型和值。只有 array() 被识别。

您可以做的是创建一个“静态初始化器”函数,该函数只能调用一次并将设置您的变量...因此:

<?php

class Test
{
   public static $blah;
   private static $__initialized = false;

   public static function __initStatic() {
       if(self::$__initialized) return;

       self::$blah = (1 == 1) ? 'this' : 'or this';

       self::$__initialized = true;
   }
}
Test::__initStatic();

然后只需从您的其他文件中获取您的变量:

<?php
echo Test::$blah;

如果您稍后在代码中编辑 Test::$blah,它不会因意外调用 Test::__initStatic() 而恢复。

关于php - 解析错误在 PHP 中设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3368760/

相关文章:

php - LimitIterator offset 1 with 2 elements

php - 通过重定向 PHP 发送数组

php - 在 PHP 中执行 shell 命令而不等待结果

c# - 将代码分配给变量

php - Doctrine 和 Symfony 2 中的 DateTime 字段

php - 在 PHP-CS-Fixer 中使用制表符缩进

angular - 为什么 TypeScript 接受值作为数据类型?

javascript - 将 JS 原型(prototype)设计和 OOP 与实例变量混淆

php - 如何将 css 代码存储在与 Javascript 一起使用的 php 变量中

variables - 第一天 lua - 被 for 循环弄糊涂了