JezK
Edit File: Parameters.php
<?php /** * Copyright (c) 2014-present, Facebook, Inc. All rights reserved. * * You are hereby granted a non-exclusive, worldwide, royalty-free license to * use, copy, modify, and distribute this software in source code or binary * form for use in connection with the web services and APIs provided by * Facebook. * * As with any software that integrates with the Facebook platform, your use * of this software is subject to the Facebook Developer Principles and * Policies [http://developers.facebook.com/policy/]. This copyright notice * shall be included in all copies or substantial portions of the software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ namespace FacebookPixelPlugin\FacebookAds\Http; class Parameters extends \ArrayObject { /** * @param mixed $data * @param int $flags * @param string $iterator_class */ public function __construct( $data = array(), $flags = 0, $iterator_class = 'ArrayIterator') { if ($data instanceof \ArrayObject) { $data = $data->getArrayCopy(); } elseif (is_object($data)) { $data = get_object_vars($data); } if (!is_array($data)) { $data = array(); } parent::__construct($data, $flags, $iterator_class); } /** * @param array $data */ public function enhance(array $data) { foreach ($data as $key => $value) { $this[$key] = $value; } } /** * @param mixed $value * @return string */ protected function exportNonScalar($value) { return json_encode($value); } /** * @return array */ public function export() { $data = array(); foreach ($this as $key => $value) { $data[$key] = is_null($value) || is_scalar($value) ? $value : $this->exportNonScalar($value); } return $data; } }