summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold Daniels <arnold@jasny.net>2016-06-22 19:36:41 +0200
committerArnold Daniels <arnold@jasny.net>2016-06-22 19:37:15 +0200
commita312b9742be7002cef53c69ae5550d9bc87a0dc5 (patch)
tree1d1dd8a236eb4dafd84e532bccb38a50d285bfe3
parente41ac80a66cc27a49f513aaa7c6029a1b054ee45 (diff)
downloadrouter-a312b9742be7002cef53c69ae5550d9bc87a0dc5.zip
router-a312b9742be7002cef53c69ae5550d9bc87a0dc5.tar.gz
router-a312b9742be7002cef53c69ae5550d9bc87a0dc5.tar.bz2
Fix casting to associated array in Router::bind()
-rw-r--r--src/Router.php9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Router.php b/src/Router.php
index 5f79e6f..d08f5dc 100644
--- a/src/Router.php
+++ b/src/Router.php
@@ -558,9 +558,9 @@ class Router
protected static function bind($vars, array $parts)
{
$values = [];
- $type = is_array($vars) || is_int(reset($vars)) ? 'numeric' : 'assoc';
+ $type = is_array($vars) && is_int(reset(array_keys($vars))) ? 'numeric' : 'assoc';
- foreach ($vars as $key=>$var) {
+ foreach ($vars as $key => $var) {
if (!isset($var)) continue;
if (is_object($var) && !$var instanceof \stdClass) {
@@ -585,7 +585,10 @@ class Router
}
}
- if ($type === 'assoc') $values = (object)$values;
+ if (is_object($vars) && $type === 'assoc') {
+ $values = (object)$values;
+ }
+
return $values;
}