当源是一个整数而目标是一个字符串时,什么是Pascal的Move的PHP等价物?

时间:2013-01-21 06:44:55

标签: php delphi pascal

我正在将一些Pascal转换为PHP。在返回类型AnsiString的函数内部,有以下代码行:

SetLength(Result, 3);
Move(I, Result[1], Length(Result));

ILongint,其值为5051253. Result中的最终结果是'u'#19'M'

如何在PHP中复制它?它在做什么?我知道MoveI读取字节并将其放入Result

2 个答案:

答案 0 :(得分:3)

第一行将变量“Result”的长度设置为3个字节。

我不知道我的价值来自哪里,但它可能指向内存中的另一个变量。

第二行是从该指向的存储区复制3个字节到变量“Result”。

您需要做的是查看变量“I”指向的位置并根据该变量构建PHP代码。

让我们说,我引用另一个ansistring变量“Source”。然后你可以这样做:

`$ Result = substr($ Source,0,3);'

答案 1 :(得分:2)

function low3bytes( $I) {
  return chr(         $I           % 256)
       . chr( ((int) ($I /   256)) % 256)
       . chr( ((int) ($I / 65536)) % 256);
}

警告:未经测试。