小编Whi*_*rot的帖子

在类常量PHP中组合位标志

可能重复:
未解析基本语法的解决方法

我试图允许开发人员指定任何位组合,以指定他们想要包含在响应中的哪些数据.

    class ClassName {
            const BUILD_DATE_RFC = 1; 
            const BUILD_DATE_SQL = 2;
            const BUILD_DATE_SQLTIME = 4;
            const BUILD_DATE_UNIX = 8;

           // ....
   }
Run Code Online (Sandbox Code Playgroud)

这是因为当我像这样实例化类时:

$whatever = new ClassName(BUILD_DATE_RFC|BUILD_DATE_SQL);
Run Code Online (Sandbox Code Playgroud)

这个逻辑将被执行:

    if (self::BUILD_DATE_RFC & $this->metaBits) {   
        $dateMeta['RFC'] = date('r');
    }
    if (self::BUILD_DATE_SQL & $this->metaBits) {
        $dateMeta['SQL'] = date('Y-m-d');
    }
    if (self::BUILD_DATE_SQLTIME & $this->metaBits) {
        $dateMeta['SQL_time'] = date('Y-m-d H:i:s');
    }
Run Code Online (Sandbox Code Playgroud)

所有这一切都很漂亮,除了我想定义'快捷位'之类的东西,比如BUILD_DATE_ALL,这将是所有DATE相关位的总和的值,所以它们只需要指定快捷常量而不是每个单独的快捷常量.

我试过这个,但它抛出一个错误:

const BUILD_DATE_ALL =  (self::BUILD_DATE_RFC|self::BUILD_DATE_SQL|self::BUILD_DATE_SQLTIME|self::BUILD_DATE_UNIX);
Run Code Online (Sandbox Code Playgroud)

我也尝试了不同的方法/语法:

const BUILD_REQUEST_ALL =   self::BUILD_IP |
                self::BUILD_USERAGENT |
                self::BUILD_REFERER;
Run Code Online (Sandbox Code Playgroud)

和我尝试的另一种方法:

const BUILD_DEFAULT = self::BUILD_DATE_ALL|self::BUILD_REQUEST_ALL^self::BUILD_REFERER^self::BUILD_USERAGENT;
Run Code Online (Sandbox Code Playgroud)

我得到的错误是: …

php bit-manipulation class-constants

6
推荐指数
1
解决办法
4334
查看次数

Kotlin安卓扩展,无法导入包

我安装了最新的Kotlin android扩展插件(版本1.0.0-beta-1103)并将类路径添加到我的Gradle依赖项中.它编译但我仍然无法导入我的android片段内的包.

在此输入图像描述

在此输入图像描述

android intellij-idea kotlin android-gradle-plugin kotlin-android-extensions

0
推荐指数
1
解决办法
3112
查看次数