почему этот код каждый раз, когда он выполняет, добавляет две точки к числу в a.txt :
<?php function substr_unicode($str, $s, $l = null) { return join("", array_slice( preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY) , $s, $l) ); } function statusRead() { $statusfile = file_get_contents('a.txt'); // for detecting and removing BOM (0xEF,0xBB,0xBF) $statusfile = ord($statusfile[0]) == 239 ? ord($statusfile[1]) == 187 ? ord($statusfile[2]) == 191 ? substr_unicode($statusfile, 1) : $statusfile : $statusfile : $statusfile; $statusfile = str_replace("\r",'',$statusfile); $statusfile = explode("\n",$statusfile); foreach ($statusfile as $a) { $a = explode(":",$a); if($a[0]) $temp[$a[0]] = @$a[1] ? $a[1] : null; } return $temp; // changed: (($statusfile = $temp; return $statusfile;)) to ((return $temp;)) } function statusUpdate($data) { $temp = ''; foreach ($data as $a => $b) { $temp .= "$a:$b\r\n"; } file_put_contents('a.txt', $temp); } $a = statusRead(); $a['number']++; statusUpdate($a) ; ?>
это содержание a.txt :
stop:0 number:5 dor:3
a['number']++
каждый раз добавляет две точки к числу в a.txt, а при использовании a['number'] += 2
добавляет 4 точки к числу в a.txt
update: Я изменил $temp .= "$a:$b\r\n";
to $temp .= "$a :$b\r\n";
и мои данные сохранены в этой структуре:
stop :0 number :6 dor :3 number :1
но почему?