为什么json_encode (in SimpleCartItem::getJSONPriceRules() )
会返回奇怪的字符串?字符串为空,但长度不为零。 (strlen($res) > 0)
和var_dump
打印*string '' (length=35)*)
。
class SimpleCartItem {
public $resourceId;
public $title;
public $photoURL;
public $daysCount;
public $dateFrom;
public $dateTo;
public $type;
/**
* [
* [price, minDays, maxDays],
* [..],
* ..
* ]
* maxDays is optional param!
* @var Array
*/
public $priceRules;
function __construct($resourceId) {
$this->resourceId = $resourceId;
$this->lazyParamsLoader();
}
function lazyParamsLoader() {
global $modx;
$resource = $modx->getObject('modResource', ['id' => $this->resourceId] );
$props = $resource->toArray();
$this->title = $props['pagetitle'];
$this->photoURL = $resource->getTVValue('equip-photo');
$one = $resource->getTVValue('equip-day-price');
$two = $resource->getTVValue('equip-two-days-price');
$five = $resource->getTVValue('equip-five-days-price');
$this->priceRules = [
[(int)$one, 1, 1],
[(int)$two, 2, 4],
[(int)$five, 5],
];
}
function getJSONPriceRules() {
//var_dump(json_encode($this->priceRules), $this->priceRules);
$res = json_encode($this->priceRules);
var_dump($res); // <--- string '' (length=35)
for ($i=0; $i<strlen($res);$i++)
echo $res[$i]; // <--- empty!
$res .= 'h';
var_dump($res); // <--- string 'h' (length=36)
return $res;
}