-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathstatic.xml
More file actions
162 lines (144 loc) · 4.44 KB
/
Copy pathstatic.xml
File metadata and controls
162 lines (144 loc) · 4.44 KB
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3c831023489be0c64268882d5b656149140d6f8b Maintainer: nilgun Status: ready -->
<!-- CREDITS: tpug, sezer -->
<sect1 xml:id="language.oop5.static" xmlns="http://docbook.org/ns/docbook">
<title><code>static</code> Anahtar Sözcüğü</title>
<tip>
<simpara>
Bu sayfada statik yöntem ve özellikleri tanımlamak için
<literal>static</literal> anahtar sözcüğünün kullanımı açıklanmıştır.
<literal>static</literal> ayrıca,
<link linkend="language.variables.scope.static">statik değişkenler</link>
ile <link linkend="functions.anonymous-functions.static">statik isimsiz
işlevlerin</link> tanımlanması ve <link
linkend="language.oop5.late-static-bindings">statik içselleştirim</link>
için de kullanılır. <literal>static</literal> anahtar sözcüğünün
anlamları hakkında bilgi edinmek için bu sayfalara bakılabilir.
</simpara>
</tip>
<para>
Sınıf özelliklerinin ya da yöntemlerinin <code>static</code> olarak
tanımlanması, o özelliklerin ve yöntemlerin sınıf örneğinin oluşturulmasına
gerek kalmadan erişilebilir olmalarını sağlar.
</para>
<sect2 xml:id="language.oop5.static.methods">
<title>Statik Yöntemler</title>
<para>
Statik yöntemlerin, nesnenin bir örneği oluşturulmadan erişilebilir
olmalarından dolayı, <varname>$this</varname> sözde değişkeni,
<code>static</code> olarak bildirilmiş yöntemlerin içinde kullanılamaz.
</para>
<warning>
<para>
Statik olmayan yöntemlerin statik olarak çağrılması
bir <classname>Error</classname> yavrulanmasına sebep olur.
</para>
<para>
PHP 8.0.0 öncesinde ise, statik olmayan yöntemlerin statik olarak
çağrılması önerilmemekte ve bir <constant>E_DEPRECATED</constant>
uyarısı üretmekteydi.
</para>
</warning>
<example>
<title>- Statik yöntem örneği</title>
<programlisting role="php">
<![CDATA[
<?php
class Foo {
public static function statikYöntem() {
// ...
}
}
Foo::statikYöntem();
$classname = 'Foo';
$classname::statikYöntem();
?>
]]>
</programlisting>
</example>
</sect2>
<sect2 xml:id="language.oop5.static.properties">
<title>Statik Özellikler</title>
<para>
Statik özelliklere, nesne üzerinden ok işleci (->) kullanılarak değil,
<xref linkend="language.oop5.paamayim-nekudotayim" />
(<literal>::</literal>) kullanılarak erişilebilir.
</para>
<para>
Diğer statik değişkenlerde olduğu gibi statik özellikler
&const; ifadeleri için geçerli kurallarla ilklendirilebilir: Bazı
sınırlı ifadeler mümkündür, bunlar derleme sırasında değerlendirilir.
</para>
<para>
Bir sınıfa bir değişken kullanarak gönderim yapılabilir.
Böyle bir değişkenin değeri <literal>self</literal>,
<literal>parent</literal> veya <literal>static</literal> gibi bir anahtar
sözcük olamaz.
</para>
<example>
<title>- Statik özellik örneği</title>
<programlisting role="php">
<![CDATA[
<?php
class Falanca
{
public static $statik = 'falanca';
public function statikDeğer() {
return self::$statik;
}
}
class Feşmekan extends Falanca
{
public function falancaStatik() {
return parent::$statik;
}
}
print Falanca::$statik . "\n";
$falanca = new Falanca();
print $falanca->statikDeğer() . "\n";
print $falanca->statik . "\n"; // Tanımsız "Özellik" statik
print $falanca::$statik . "\n";
$sınıfadı = 'Falanca';
print $sınıfadı::$statik . "\n";
print Feşmekan::$statik . "\n";
$feşmekan = new Feşmekan();
print $feşmekan->falancaStatik() . "\n";
?>
]]>
</programlisting>
&example.outputs.8.similar;
<screen>
<![CDATA[
falanca
falanca
Notice: Accessing static property Falanca::$statik as non static in /in/V0Rvv on line 23
Warning: Undefined property: Falanca::$statik in /in/V0Rvv on line 23
falanca
falanca
falanca
falanca
]]>
</screen>
</example>
</sect2>
</sect1>
<!-- 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
-->