search

Home  >  Q&A  >  body text

PHP如何在类中将一个字符串常量与一个字符串合起来定义成一个变量

已有一个常量DATA_PATH,和一个字符串"file_name"

如何在类中定义一个变量(常量好像需要5.7),表示DATA_PATH与"file_name"的组合。

我在类外,像下面这样定义是可以的:

$FILE_PATH = DATA_PATH."file_name";

但在类中就不行:

class Util {
    public static $FILE_PATH = DATA_PATH."file_name"; // 语法错误
}

求除了升级PHP版本的其他方法

大家讲道理大家讲道理2818 days ago467

reply all(5)I'll reply

  • 巴扎黑

    巴扎黑2017-04-10 15:08:49

    题主的原意是不用实例化直接这样 Util::$FILE_PATH 调用这个静态属性吧?

    是的,除了升级到 PHP v5.6.0,就是直接写成方法了:

    define('DATA_PATH', __DIR__ . DIRECTORY_SEPARATOR);
    
    class Util {
        public static function getFilePath() {
            return DATA_PATH . 'filename';
        }
    }
    
    echo Util::getFilePath();
    

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 15:08:49

    http://3v4l.org/td8D4 || http://3v4l.org/ML4Ce

    reply
    0
  • PHP中文网

    PHP中文网2017-04-10 15:08:49

    楼主,去掉 static 就可以了..
    静态成员属性是需要直接赋值的

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 15:08:49

    defined('DATA_FILE') or define('DATA_FILE', DATA_PATH."file_name");
    class Util {
    public static $FILE_PATH = DATA_FILE;
    }

    http://3v4l.org/gXSsn
    PS:3v4l.org 挺好用!

    reply
    0
  • 阿神

    阿神2017-04-10 15:08:49

    构造函数中对静态变量赋值即可。

    reply
    0
  • Cancelreply