PHP在内爆数组时会覆盖自身
所以我遇到了我见过的最奇怪的问题 所以,在一些背景知识中,我有一个类,它包含交易,有需要,有和想要交易的用户。我还有一个print方法,它以(Want | have1、have2等)的形式将其显示为一个节点,但当我内爆haves数组时,它会覆盖它 下面是一个例子:PHP在内爆数组时会覆盖自身,php,Php,所以我遇到了我见过的最奇怪的问题 所以,在一些背景知识中,我有一个类,它包含交易,有需要,有和想要交易的用户。我还有一个print方法,它以(Want | have1、have2等)的形式将其显示为一个节点,但当我内爆haves数组时,它会覆盖它 下面是一个例子: array(5) { [0]=> " string(14) "Draconnection [1]=> " string(19) "Cyber Angel Idaten [2]=> " string(12)
array(5) {
[0]=>
" string(14) "Draconnection
[1]=>
" string(19) "Cyber Angel Idaten
[2]=>
" string(12) "Hitodenchak
[3]=>
" string(13) "Bujingi Warg
[4]=>
" string(10) "Rai Rider
}
-Rai RiderargIdaten
这是我的课程代码
class trade{
protected $have;
protected $want;
protected $user;
function __construct($want,$have){
if (is_array($have)){
$this->have = $have; // have is an array of strings
}else{
$this->have = [$have];
}
$this->want = $want;
}
function getHave(){
return $this->have;
}
function getWant(){
return $this->want;
}
function __toString(){
// return "(".$this->want." | ".implode(",", $this->have).")\r\n";
// var_dump($this);
$out=implode("-",$this->have);
var_dump($this->have);
return $out;
}
}
感谢您的帮助您在所有这些字符串的末尾都有流氓元字符,可能是裸的
\r
s。字符串数据都在那里,但是打印它的东西在打印上一行的更多数据之前,会不断得到一个返回到行首的命令
如果你有一个shell,运行
php-yourscript.php | hextump-C
查看原始输出,其中0d
后面没有0a
是一个裸\r
后面没有\n
它覆盖它是什么意思?@Adrián“覆盖”,不覆盖。你说它覆盖它是什么意思?请阅读有关如何在Stackoverflow中提问的指导原则。您输入了代码,但没有输入var_dump()。还有,到目前为止你做了什么调试?我试着用不同的方式重新打印它,var dump显示它是一个规则数组,通过覆盖,我的意思是,内爆应该执行的每个连续concat实际上都在前一行上打印。太棒了!谢谢,我通过逐行阅读修复了它,我认为问题在于我将它拆分为\n,因此它将\r的留在后面,我不知道它们会有这种效果。