Yaffs site version 1.1
[yaffs-website] / vendor / symfony / var-dumper / Caster / CutStub.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\VarDumper\Caster;
13
14 use Symfony\Component\VarDumper\Cloner\Stub;
15
16 /**
17  * Represents the main properties of a PHP variable, pre-casted by a caster.
18  *
19  * @author Nicolas Grekas <p@tchwork.com>
20  */
21 class CutStub extends Stub
22 {
23     public function __construct($value)
24     {
25         $this->value = $value;
26
27         switch (gettype($value)) {
28             case 'object':
29                 $this->type = self::TYPE_OBJECT;
30                 $this->class = get_class($value);
31                 $this->cut = -1;
32                 break;
33
34             case 'array':
35                 $this->type = self::TYPE_ARRAY;
36                 $this->class = self::ARRAY_ASSOC;
37                 $this->cut = $this->value = count($value);
38                 break;
39
40             case 'resource':
41             case 'unknown type':
42             case 'resource (closed)':
43                 $this->type = self::TYPE_RESOURCE;
44                 $this->handle = (int) $value;
45                 if ('Unknown' === $this->class = @get_resource_type($value)) {
46                     $this->class = 'Closed';
47                 }
48                 $this->cut = -1;
49                 break;
50
51             case 'string':
52                 $this->type = self::TYPE_STRING;
53                 $this->class = preg_match('//u', $value) ? self::STRING_UTF8 : self::STRING_BINARY;
54                 $this->cut = self::STRING_BINARY === $this->class ? strlen($value) : mb_strlen($value, 'UTF-8');
55                 $this->value = '';
56                 break;
57         }
58     }
59 }