#34409 [Fbk->Bgs]: concatenating a "\n" to a single character string produces incorrect output
| From: | tony2001@php.net | Date: | Wed, 07 Sep 2005 14:17:35 +0000 |
| Subject: | #34409 [Fbk->Bgs]: concatenating a "\n" to a single character string produces incorrect output | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-84629@lists.php.net to get a copy of this message | ||
ID: 34409
Updated by: tony2001@php.net
Reported By: dskiles at docfinity dot com
-Status: Feedback
+Status: Bogus
Bug Type: Strings related
Operating System: Windows XP sp2
PHP Version: 5.0.5
New Comment:
Works just fine here.
Also, line endings on windows are \r\n, not \n.
Previous Comments:
------------------------------------------------------------------------
[2005-09-07 16:14:56] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5-win32-latest.zip
And can't you really come up with a shorter reproduce script?
------------------------------------------------------------------------
[2005-09-07 15:50:30] dskiles at docfinity dot com
Description:
------------
I've been running into a problem where a single character string will
turn into a '?' character when I attempt to concatenate it or
interpolate it with a single "\n" character.
If I use a multi-character string or multiple "\n" characters I don't
get '?' characters anymore.
I'm running this from the console.
Reproduce code:
---------------
<?php
class Environment {
//todo: add persistance
const ALLPAIRS = 0;
const EXHAUSTIVE = 1;
///factors is a multidimenstional associative array.
///the key for the main array is the factor. The value of that key is
a traditional array of values
private $factors;
///FactorMaps are 1:1 concrete representations made out of the
factors
private $factorMaps;
///Mode states how FactorMaps are made from the factors
///Currently, allpairs and exhaustive are supported
private $mode;
public function __construct($mode=Environment::ALLPAIRS) {
$this->factors = array();
$this->factorMaps = array();
$this->mode = $mode;
}
public function addFactorValues($factor, $values) {
if (!isset($this->factors[$factor])) {
$this->factors[$factor] = array();
}
$this->factors[$factor] = array_merge($this->factors[$factor],
$values);
//todo: update the factormaps if any factors were added
}
public function getFactorValues($factor) {
return $this->factors[$factor];
}
}
?>
/////////////////////////////////////////////
<?php
require('../Environment.php');
$enviro = new Environment();
$enviro->addFactorValues('test', array('a', 'b', 'c',
'd'));
foreach($enviro->getFactorValues('test') as $val) {
echo("$val\n");
}
?>
Expected result:
----------------
a
b
c
d
Actual result:
--------------
????
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=34409&edit=1