【发布时间】:2014-07-08 11:31:05
【问题描述】:
如果我有一个像“test”这样的字符串,我有来自偏移量 0-3 的字符。我想在偏移量 6 处添加另一个字符串。有没有一个简单的 PHP 函数可以做到这一点?
我正在尝试这个,但出现错误:
PHP 致命错误:不能在 ... 中使用重载对象或字符串偏移的赋值操作运算符
我知道我可以连接这些字符串,但我想根据来自 Stanford CoreNLP 的输出构建一个句子,它提供字符串偏移位置 http://nlp.stanford.edu/software/example.xml(更多信息在 http://nlp.stanford.edu/software/corenlp.shtml)
$strings[0] = "test";
$strings[1] = "new";
foreach($strings as $string) {
for($i = 0 ; $i <= strlen($string); $i++) {
print $string[$i];
if (!isset($sentence)) {
$sentence = $string[$i];
}
else {
$sentence[strlen($sentence)] .= $string[$i];
}
}
}
print_r ($sentence);
PHP 文档说http://www.php.net/manual/en/language.types.string.php
写入超出范围的偏移会用空格填充字符串。非整数类型转换为整数。非法偏移类型发出 E_NOTICE。负偏移量在写入时发出 E_NOTICE 但读取空字符串。仅使用分配字符串的第一个字符。分配空字符串会分配 NULL 字节。
【问题讨论】:
-
您是否尝试将字符串视为字符数组?通过这种方式,您可以根据需要添加字符甚至连接字符串。
-
谢谢,这就是我在示例代码中尝试做的事情。
-
这个方法不对,如果你想把它当作一个数组,你首先需要创建一个带有 strlen($yourstring) 块的数组,这样每个块都包含你的字符串的一个字符。