Example #1
0
File: Vale.php Project: cocur/vale
 /**
  * @param mixed $data
  * @param array $keys
  *
  * @return bool
  */
 public function hasValue($data, $keys)
 {
     if ($this->isKeysEmpty($keys)) {
         return true;
     }
     if (!is_array($keys)) {
         $keys = [$keys];
     }
     $accessor = new Accessor($data);
     $keyCount = count($keys);
     $depth = 0;
     foreach ($keys as $key) {
         if ($depth + 1 === $keyCount && $accessor->has($key) === false || $accessor->to($key) === false) {
             return false;
         }
         ++$depth;
     }
     return true;
 }
Example #2
0
 /**
  * @test
  * @covers Cocur\Vale\Accessor::has()
  */
 public function hasReturnsFalseIfObjectHasIsAndReturnsFalse()
 {
     eval('class AccessorTestMockHasReturnsFalseIfObjectHasIsAndReturnsFalse { public function is() { return false;} }');
     $obj = new \AccessorTestMockHasReturnsFalseIfObjectHasIsAndReturnsFalse();
     $accessor = new Accessor($obj);
     $this->assertFalse($accessor->has('level1'));
 }