Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

merged branch JEDIBC/master (PR #401)

Commits
-------

755ea99 Correction of a BC break with json_encode and PHP 5.2.x

Discussion
----------

BC break with json_encode and php 5.2.x

Hi,

json_encode on php 5.2.x doesn't take the $options parameter wich result in a warning and the function return nothing.

Cheers.
  • Loading branch information...
commit 945579a8f6104e55c4e8c80d606b9fae2b351b4b 2 parents 26757ab + 755ea99
@fabpot fabpot authored
Showing with 36 additions and 14 deletions.
  1. +36 −14 lib/Twig/Extension/Core.php
View
50 lib/Twig/Extension/Core.php
@@ -251,23 +251,45 @@ function twig_urlencode_filter($url, $raw = false)
return urlencode($url);
}
-/**
- * JSON encodes a PHP variable.
- *
- * @param mixed $value The value to encode.
- * @param integer $options Bitmask consisting of JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
- *
- * @return mixed The JSON encoded value
- */
-function twig_jsonencode_filter($value, $options = 0)
+if (version_compare(PHP_VERSION, '5.3.0', '<'))
{
- if ($value instanceof Twig_Markup) {
- $value = (string) $value;
- } elseif (is_array($value)) {
- array_walk_recursive($value, '_twig_markup2string');
+ /**
+ * JSON encodes a PHP variable.
+ *
+ * @param mixed $value The value to encode.
+ * @param integer $options Not used on PHP 5.2.x
+ *
+ * @return mixed The JSON encoded value
+ */
+ function twig_jsonencode_filter($value, $options = 0)
+ {
+ if ($value instanceof Twig_Markup) {
+ $value = (string) $value;
+ } elseif (is_array($value)) {
+ array_walk_recursive($value, '_twig_markup2string');
+ }
+
+ return json_encode($value);
}
+} else {
+ /**
+ * JSON encodes a PHP variable.
+ *
+ * @param mixed $value The value to encode.
+ * @param integer $options Bitmask consisting of JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
+ *
+ * @return mixed The JSON encoded value
+ */
+ function twig_jsonencode_filter($value, $options = 0)
+ {
+ if ($value instanceof Twig_Markup) {
+ $value = (string) $value;
+ } elseif (is_array($value)) {
+ array_walk_recursive($value, '_twig_markup2string');
+ }
- return json_encode($value, $options);
+ return json_encode($value, $options);
+ }
}
function _twig_markup2string(&$value)
Please sign in to comment.
Something went wrong with that request. Please try again.