小编cyd*_*ydo的帖子

PHP命名空间和包含类的Include()

我需要扩展一个项目.所有类都在单独的文件中,我需要扩展一些类而不重写其他文件中的现有代码.我的想法是使用命名空间,但我失败了.这是一个例子:

我已将原始的A.php类文件重命名为A_Original.php:

class A
{

    public function hello()
    {
        echo "hello world from Class A\n";
    }

}
Run Code Online (Sandbox Code Playgroud)

然后创建了一个新的A.php:

namespace AOriginal {

    include 'A_Original.php';
}


namespace {

class A
{

    public function hello()
    {
        echo "hello world from Class A Extended\n";
    }

}

}
Run Code Online (Sandbox Code Playgroud)

这会失败,因为在including原始的A_Original.php文件中,类被转储到全局范围(因此忽略命名空间命令).我无法修改A_Original.php文件中的现有代码,但重命名是可以的.

其他项目文件(我无法修改)使用a require "A.php".

怎么做到这一点?

php namespaces

10
推荐指数
1
解决办法
7205
查看次数

使用RTTI将枚举属性读写为Integer

我知道如何写一个枚举属性作为字符串:


    var
      Form: TForm;
      LContext: TRttiContext;
      LType: TRttiType;
      LProperty: TRttiProperty;
      PropTypeInfo: PTypeInfo;
      Value: TValue;

    begin
      Form := TForm.Create(NIL);
      LContext := TRttiContext.Create;

      LType := LContext.GetType(Form.ClassType);
      for LProperty in LType.GetProperties do
        if LProperty.Name = 'FormStyle' then
        begin
          PropTypeInfo := LProperty.PropertyType.Handle;
          TValue.Make(GetEnumValue(PropTypeInfo, 'fsStayOnTop'), PropTypeInfo, Value);
          LProperty.SetValue(Form, Value);
        end;

      writeln(Integer(Form.FormStyle));  // = 3

但如果我没有字符串但是整数(例如3表示fsStayOnTop)以及如何从该属性读取但不返回字符串(可以使用Value.AsString),如何设置值?


     Value := LProperty.GetValue(Obj);
     writeln(Value.AsString);  // returns fsStayOnTop but I want not a string, I want an integer
     writeln(Value.AsInteger);  // fails

delphi delphi-xe8 delphi-10-seattle

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

使用Delphi查找给定周和年的开始

我正在寻找一个Delphi(10+)函数,它返回一个给定年份和周数的function StartDate(2021, 53): TDateTDate : 应返回2021-01-01.

尽管WeekOfTheYear(EncodeDate(2021,1,1))回报率53(正确的),我不能做其他方式轮StartOfAWeek(2021,53, 1)也不StartOfAWeek(2021,53, 5)(5 =这是一个星期五) -它不会被识别为有效日期(=除外).有什么建议?

编辑:我正在寻找符合ISO 8601标准的功能(如内部Delphi例程),星期一= 1和特殊周考虑(如2021-01-01),或者更精确:"反之亦然"例行程序 WeekOfTheYear

delphi

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

标签 统计

delphi ×2

delphi-10-seattle ×1

delphi-xe8 ×1

namespaces ×1

php ×1