-
Notifications
You must be signed in to change notification settings - Fork 40
/
stdclass.xml
145 lines (133 loc) · 3.62 KB
/
stdclass.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 14767af0f05dffa6fdb9b49e1a1f4e9ca7022a60 Maintainer: samesch Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.stdclass" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Die Klasse stdClass</title>
<titleabbrev>stdClass</titleabbrev>
<partintro>
<section xml:id="stdclass.intro">
&reftitle.intro;
<para>
Eine generische leere Klasse mit dynamischen Eigenschaften.
</para>
<para>
Objekte dieser Klasse können mit dem Operator
<link linkend="language.oop5.basic.new">new</link> instanziiert oder durch
<link linkend="language.types.object.casting">Konvertierung in ein Objekt</link>
erzeugt werden. Auch mehrere PHP-Funktionen erzeugen Instanzen dieser
Klasse, &zb; <function>json_decode</function>,
<function>mysqli_fetch_object</function> oder
<methodname>PDOStatement::fetchObject</methodname>.
</para>
<para>
Obwohl diese Klasse die magischen Methoden
<link linkend="object.get">__get()</link>/<link linkend="object.set">__set()</link>
nicht implementiert, lässt sie dynamische Eigenschaften zu und benötigt
das Attribut <code>#[\AllowDynamicProperties]</code> nicht.
</para>
<para>
Da PHP kein Konzept einer universellen Basisklasse hat, handelt es sich
hierbei nicht um eine Basisklasse. Es ist jedoch möglich, eine
benutzerdefinierte Klasse zu erstellen, die von
<classname>stdClass</classname> erweitert wird und dadurch die
Funktionalität der dynamischen Eigenschaften erbt.
</para>
</section>
<section xml:id="stdclass.synopsis">
&reftitle.classsynopsis;
<classsynopsis class="class">
<ooclass>
<classname>stdClass</classname>
</ooclass>
</classsynopsis>
<para>
Diese Klasse hat weder Methoden noch Standardeigenschaften.
</para>
</section>
<section xml:id="stdclass.examples" role="examples">
&reftitle.examples;
<example xml:id="stdclass.basic-example">
<title>Erzeugt durch eine Typumwandlung in ein Objekt</title>
<programlisting role="php">
<![CDATA[
<?php
$obj = (object) array('foo' => 'bar');
var_dump($obj);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
object(stdClass)#1 (1) {
["foo"]=>
string(3) "bar"
}
]]>
</screen>
</example>
<example xml:id="stdclass.json-example">
<title>Erzeugt mittels <function>json_decode</function></title>
<programlisting role="php">
<![CDATA[
<?php
$json = '{"foo":"bar"}';
var_dump(json_decode($json));
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
object(stdClass)#1 (1) {
["foo"]=>
string(3) "bar"
}
]]>
</screen>
</example>
<example xml:id="stdclass.properties-example">
<title>Deklarieren dynamischer Eigenschaften</title>
<programlisting role="php">
<![CDATA[
<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
object(stdClass)#1 (2) {
["foo"]=>
int(42)
["1"]=>
int(42)
}
]]>
</screen>
</example>
</section>
</partintro>
</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->