-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy patherrorcontrol.xml
More file actions
105 lines (99 loc) · 3.51 KB
/
errorcontrol.xml
File metadata and controls
105 lines (99 loc) · 3.51 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
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 43d07782b514d0c7a8487f2c74063739f302df8d Maintainer: nilgun Status: ready -->
<sect1 xml:id="language.operators.errorcontrol">
<title>Hata Denetim İşleçleri</title>
<titleabbrev>Hata Denetim</titleabbrev>
<simpara>
PHP tek bir hata denetim işlecini destekler: kuyruklu a imi
(<literal>@</literal>). PHP'de bir deyimin başına getirildiğinde,
bu deyimin üreteceği olası hata iletileri engellenir.
</simpara>
<para>
<function>set_error_handler</function> ile özel bir hata işleyici işlevi
ayarlanırsa, tanılama bastırılmış olsa bile işlev çağrılır.
</para>
<warning>
<para>
PHP 8.0.0'dan önce, özel hata işleyicisinden çağrılan
<function>error_reporting</function> işlevi, hata <literal>@</literal>
işleci ile bastırılmış olsa bile daima <literal>0</literal> döndürürdü.
PHP 8.0.0 ve sonrasında <literal>E_ERROR | E_CORE_ERROR |
E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE</literal>
bitsel ifadesinin değeri dönmektedir.
</para>
</warning>
<simpara>
İfade tarafından üretilenhata iletisi, <function>get_error_last</function>
işlevinden dönen dizinin <literal>"message"</literal> elemanında bulunur.
Bu işlevin sonucu her hatada değişir, bu bakımdan sonuca yeterince kısa
sürede bakmak gerekir.
</simpara>
<para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
/* Kasıtlı dosya hatası */
$dosyam = @file ('var_olmayan_dosya') or
die ("Dosya açılamadı: hata '" . get_error_last()['message'] . "'");
// İfadelerle çalışır ama işlevlerle çalışmaz:
$değer = @$cache[$key];
// $key indisi mevcut değilse bir uyarı çıktılanır.
?>
]]>
</programlisting>
</informalexample>
</para>
<note>
<simpara>
Kuyruklu a işleci sadece <link linkend="language.expressions"
>ifadeler</link>in başında kullanıldığında çalışır. Kısaca: Bir değer
elde edilebilen herşeyin başına <literal>@</literal> getirilebilir.
Örneğin, değişkenlerin işlev veya <function>include</function>
çağrılarının, sabitlerin ve benzerlerinin başına <literal>@</literal>
getirilebilir. Ama işlev veya sınıf tanımlarının veya
<literal>if</literal> ve &foreach; gibi denetim
yapılarının başına <literal>@</literal> konamaz.
</simpara>
</note>
<warning>
<para>
PHP 8.0.0 öncesinde, <literal>@</literal> hata denetim işleci ile
betiğin çalışmasını sonlandıracak önemli hataların raporlanmasını
iptal etmek mümkündü.
Bu bakımdan, işleç örneğin bir işlevden kaynaklanabilecek hataları
bastırmak için kullanılıyorsa, işlev tanımında yapılan yazım hataları
nedeniyle veya işlevin yokluğu halinde, ne olup bittiği anlaşılamadan
betik sonlanabiliyordu.
</para>
</warning>
<sect2 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>error_reporting</function></member>
<member><link linkend="ref.errorfunc">Hata İşleme İşlevleri</link></member>
</simplelist>
</para>
</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
-->