File: types.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (629 lines) | stat: -rw-r--r-- 20,578 bytes parent folder | download
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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
<?xml version="1.0" encoding="iso-8859-1"?>
 <chapter id="language.types">
  <title>Tipos</title>

  <para>
   O PHP suporta os seguintes tipos:
   <itemizedlist>
    <listitem>
     <simpara>
      <link linkend="language.types.array">matriz</link>
     </simpara>
    </listitem>
    <listitem>
     <simpara>
      <link linkend="language.types.float">nmeros de ponto flutuante
      </link>
     </simpara>
    </listitem>
    <listitem>
     <simpara>
      <link linkend="language.types.integer">inteiro</link>
     </simpara>
    </listitem>
    <listitem>
     <simpara>
      <link linkend="language.types.object">objeto</link>
     </simpara>
    </listitem>
    <listitem>
     <simpara>
      <link linkend="language.types.string">string</link>
     </simpara>
    </listitem>
   </itemizedlist>
  </para>
  <simpara>
   O tipo da varivel geralmente no  setado pelo programador; em vez disso, 
    decidido em tempo de execuo pelo PHP, dependendo do contexto no qual a 
   varivel  usada.
  </simpara>
  <simpara>
   Se voc gostaria de forar uma varivel a ser convertida para um certo tipo,
   voc pode <link linkend="language.types.typecasting">moldar</link> a varivel 
   ou usar a funo <function>settype</function> nela.
  </simpara>
  <simpara>
   Note que uma varivel pode se comportar de maneiras diferentes em certas 
   situaes, dependendo de qual tipo ela  no momento. Para mais informaes, 
   veja a seo <link linkend="language.types.type-juggling">Manipulao de tipos</link>.
  </simpara>

  <sect1 id="language.types.integer">
   <title>Inteiros</title>
   <para>
    Inteiros podem ser especificados usando-se qualquer uma das seguintes sintaxes:
    <informalexample>
     <programlisting role="php">
$a = 1234; # nmero decimal 
$a = -123; # um nmero negativo
$a = 0123; # nmero octal (equivalente a 83 decimal)
$a = 0x12; # nmero hexadecimal (equivalente a 18 decimal)
     </programlisting>
    </informalexample>
   </para>
  </sect1>

  <sect1 id="language.types.float">
   <title>Nmeros de ponto flutuante</title>
   <para>
    Nmeros de ponto flutuante ("doubles") podem ser especificados usando-se qualquer
    uma das seguintes sintaxes: 
    <informalexample>
     <programlisting role="php"> 
$a = 1.234; $a = 1.2e3;
     </programlisting>
    </informalexample>
   </para>
  </sect1>

  <sect1 id="language.types.string">
   <title>Strings</title>
   <para>
    Strings podem ser especificadas usando-se um dos dois conjuntos de delimitadores.
   </para>
   <para>
    Se a string est englobada entre aspas ("), as variveis dentro da string sero
    expandidas (sujeitas a algumas limitaes de anlise). Como em C e em Perl, a 
    barra invertida ("\") pode ser usada para especificar caracteres especiais:
    <table>
     <title>Caracteres de escape</title>
     <tgroup cols="2">
      <thead>
       <row>
        <entry>sequence</entry>
        <entry>meaning</entry>
       </row>
      </thead>
      <tbody>
       <row>
        <entry><literal>\n</literal></entry>
        <entry>nova linha</entry>
       </row>
       <row>
        <entry><literal>\r</literal></entry>
        <entry>retorno de carro</entry>
       </row>
       <row>
        <entry><literal>\t</literal></entry>
        <entry>tabulao horizontal</entry>
       </row>
       <row>
        <entry><literal>\\</literal></entry>
        <entry>barra invertida</entry>
       </row>
       <row>
        <entry><literal>\$</literal></entry>
        <entry>cifro</entry>
       </row>
       <row>
        <entry><literal>\"</literal></entry>
        <entry>aspas</entry>
       </row>
       <row>
        <entry><literal>\[0-7]{1,3}</literal></entry>
        <entry>
         a sequncia de caracteres que casa com a expresso regular  um
         caractere na notao octal 
        </entry>
       </row>
       <row>
        <entry><literal>\x[0-9A-Fa-f]{1,2}</literal></entry>
        <entry>
         a sequncia de caracteres que casa com a expresso regular  um
         caractere na notao hexadecimal 
        </entry>
       </row>
      </tbody>
     </tgroup>
    </table></para>
   <para>
    Voc pode escapar qualquer outro caractere, mas um alerta ser emitido
    no nvel mais alto de alertas.
   </para>
   <para>
    A segunda maneira de delimitar uma string usa o apstrofe ("'"). Quando uma 
    string  englobada por apstrofes, os nicos escapes que sero entendidos so
    "\\" e "\'". Isto  por convenincia, de forma que voc tenha apstrofes e 
    barras invertidas em uma string com apstrofes. As variveis 
    <emphasis>no</emphasis> sero expandidas dentro de uma string com apstrofes.
   </para>
   <para>
    Outra maneira de delimitar strings  pelo uso da sintaxe 'here doc' 
    ("&lt;&lt;&lt;"). Algum deve fornecer um identificador depois de
    <literal>&lt;&lt;&lt;</literal>, depois a string, e ento o mesmo
    identificador para fechar a citao. O identificador de fechamento
    <emphasis>precisa</emphasis> comear na primeira coluna da linha.
    <example> 
     <title>Exemplo de citao de string 'here doc'</title>
     <programlisting>
$str = &lt;&lt;&lt;EOD
Exemplo de string
dividida em mltiplas linhas 
usando a sintaxe 'heredoc'.
EOD;
     </programlisting>
    </example>
   </para>
   <note>
    <para>
     Suporte a 'here doc' foi acrescentado no PHP 4.
    </para>
   </note>
   <para>
    Strings podem ser concatenadas usando-se o operador '.' (ponto). Note
    que o operador '+' (adio) no funcionar para isso. Por favor veja
    <link linkend="language.operators.string">Operadores de string
    </link> para mais informaes.
   </para>
   <para>
    Caracteres dentro de strings podem ser acessados pelo tratamento da string 
    como uma matriz de caracteres indexadas numericamente, usando a sintaxe
    no estilo C. Veja alguns exemplos abaixo.
   </para>
   <para>
    <example>
     <title>Alguns exemplos de string</title>
     <programlisting role="php">
&lt;?php
/* Atribuindo uma string. */
$str = "Isto  uma string";

/* Acrescentando a ela. */
$str = $str . " com mais um pouco de texto";

/* Outra maneira de acrescentar, inclui uma nova linha com escape. */
$str .= " e uma nova linha no fim.\n";

/* Esta string terminar sendo '&lt;p&gt;Nmero: 9&lt;/p&gt;' */
$num = 9;
$str = "&lt;p&gt;Nmero: $num&lt;/p&gt;";

/* Esta ser '&lt;p&gt;Nmero: $num&lt;/p&gt;' */
$num = 9;
$str = '&lt;p&gt;Number: $num&lt;/p&gt;';

/* Obtm o primeiro caractere da string  */
$str = 'Isto  um teste.';
$first = $str[0];

/* Obtm o ltimo caractere de uma string. */
$str = 'Isto ainda  um teste.';
$last = $str[strlen($str)-1];
?&gt;	  
     </programlisting>
    </example>
   </para>

   <sect2 id="language.types.string.conversion">
    <title>Converso de String</title>

    <simpara>
     Quando uma string  avaliada como um valor numrico, o valor resultante
     e o tipo so determinados como se segue.
    </simpara>
    <simpara>
     A string ser avaliada como um 'double' se contiver qualquer um dos caracteres
     '.', 'e', ou 'E'. Caso contrrio, ser avaliada como um inteiro.
    </simpara>
    <para>
     O valor  dado pela poro inicial da string. Se a string comea com dados 
     numricos vlidos, estes sero o valor usado. Caso contrrio, o valor ser 0
     (zero). Dados numricos vlidos so um sinal opcional, seguido por um ou mais
     dgitos (opcionalmente contendo um ponto decimal), seguido por um expoente 
     opcional. O expoente  um 'e' ou 'E' seguido por um ou mais dgitos.
    </para>
    <simpara>
     Quando a primeira expresso  uma string, o tipo de varivel depender da 
     segunda expresso.
    </simpara>
    <informalexample>
     <programlisting role="php">
$foo = 1 + "10.5";              // $foo  'double' (11.5)
$foo = 1 + "-1.3e3";            // $foo  'double' (-1299)
$foo = 1 + "bob-1.3e3";         // $foo  inteiro (1)
$foo = 1 + "bob3";              // $foo  inteiro (1)
$foo = 1 + "10 porquinhos";     // $foo  inteiro (11)
$foo = 1 + "10 porquinhos";     // $foo  inteiro (11)
$foo = "10.0 porcos " + 1;      // $foo  inteiro (11)
$foo = "10.0 porcos " + 1.0;    // $foo  'double' (11)     
     </programlisting>
    </informalexample>
    <simpara>
     Para mais informaes sobre esta converso, veja a pgina de manual de strtod(3).
    </simpara>
    <para>
     Se voc gostaria de testar qualquer um dos exemplos desta seo, voc pode cortar
     e colar os exemplos e inserir a seguinte linha para ver, por voc mesmo, o que 
     est acontecendo:
     <informalexample>
      <programlisting role="php">
echo "o tipo de \$foo==$foo;  " . gettype ($foo) . "&lt;br&gt;\n";
      </programlisting>
     </informalexample>
    </para>

   </sect2>
  </sect1>

  <sect1 id="language.types.array">
   <title>Matrizes</title>

   <para>
    Matrizes agem atualmente como tabelas de 'hashing' (matrizes associativas) e matrizes
    indexadas (vetores).
   </para>

   <sect2 id="language.types.array.single-dim">
    <title>Matrizes de Uma Dimenso</title>

    <para>
     O PHP suporta matrizes escalares e associativas. De fato, no h diferena entre as duas.
     Voc pode criar uma matriz usando as funes
     <function>list</function> ou <function>array</function>, ou voc pode setar cada valor dos
     elementos da matriz explicitamente.
     <informalexample>
      <programlisting role="php"> 
$a[0] = "abc"; 
$a[1] = "def"; 
$b["foo"] = 13;
      </programlisting>
     </informalexample>
    </para>
    <para>
     Voc tambm pode criar uma matriz simplesmente acrescentando valores  matriz.
     Quando voc atribui um valor a uma varivel de matriz usando colchetes vazios,
     o valor ser acrescentado ao final da matriz.
     <informalexample>
      <programlisting role="php"> 
$a[] = "ol"; // $a[2] == "ol"
$a[] = "mundo"; // $a[3] == "mundo" 
      </programlisting>
     </informalexample>
    </para>
    <para>
     As matrizes podem ser ordenadas usando-se as funes <function>asort</function>,
     <function>arsort</function>, <function>ksort</function>,
     <function>rsort</function>, <function>sort</function>,
     <function>uasort</function>, <function>usort</function>, e
     <function>uksort</function>, dependendo do tipo de ordenao que voc quer.
    </para>
    <para>
     Voc pode contar o nmero de itens em uma matriz usando a funo
     <function>count</function>.
    </para>
    <para>
     Voc pode atravessar uma matriz usando as funes <function>next</function> e
     <function>prev</function>. Uma outra maneira comum de atravessar uma matriz  com
     o uso da funo <function>each</function>.
    </para>
   </sect2>

   <sect2 id="language.types.array.multi-dim">
    <title>Matrizes Multi-Dimensionais</title>

    <para>
     Matrizes multi-dimensionais so bem simples atualmente. Para cada dimenso da matriz, 
     voc acrescenta outro valor [chave] no final:
     <informalexample>
      <programlisting role="php"> 
$a[1]      = $f;               # exemplos de uma dimenso
$a["foo"]  = $f;   

$a[1][0]     = $f;             # duas dimenses
$a["foo"][2] = $f;             # (voc pode misturar ndices numricos e associativos)
$a[3]["bar"] = $f;             # (voc pode misturar ndices numricos e associativos)

$a["foo"][4]["bar"][0] = $f;   # quatro dimenses!
      </programlisting>
     </informalexample>
    </para>
    <para>
     Em PHP3 no  possvel referenciar matrizes multidimensionais diretamente dentro de 
     strings. Por exemplo, o que vem a seguir no ter o resultado desejado:
     <informalexample>
      <programlisting role="php"> 
$a[3]['bar'] = 'Bob';
echo "Isto no vai funcionar: $a[3][bar]";
      </programlisting>
     </informalexample>
     Em PHP3, o impresso acima ser <computeroutput>Isto no vai funcionar:
     Array[bar]</computeroutput>. O operador de concatenao de string, porm, pode ser 
     usado para sobrepr isto:
     <informalexample>
      <programlisting role="php">
$a[3]['bar'] = 'Bob';
echo "Isto no vai funcionar: " . $a[3][bar];
      </programlisting>
     </informalexample>
    </para>
    <para>
     Em PHP4, porm, o problema todo pode ser acobertado englobando a referncia da 
     matriz (dentro da string) entre chaves:
     <informalexample>
      <programlisting role="php">
$a[3]['bar'] = 'Bob';
echo "Isto vai funcionar: {$a[3][bar]}";
      </programlisting>
     </informalexample>
    </para>
    <para>
     Voc pode "preencher" matrizes multidimensionais de muitas formas, mas a mais fcil de
     entender  como usar o comando <function>array</function> para matrizes associativas. 
     Estes dois trechos de cdigo preenchem a matriz unidimensional da mesma forma:
     <informalexample>
      <programlisting role="php"> 
# Exemplo 1:

$a["cor"]	= "vermelho";
$a["sabor"]	= "doce";
$a["forma"]	= "redondo";
$a["nome"]	= "ma";
$a[3]		= 4;

# Exemplo 2:
$a = array(
     "cor" => "vermelho",
     "sabor" => "doce",
     "forma" => "redondo",
     "nome"  => "ma",
     3       => 4
);
      </programlisting>
     </informalexample>
    </para>
    <para>
     A funo <function>array</function> pode ser aninhada para matrizes multidimensionais:
     <informalexample>
      <programlisting role="php"> 
&lt;?
$a = array(
     "ma"  => array(
          "cor"  => "vermelho",
          "sabor"  => "doce",
          "forma"  => "redondo"
     ),
     "laranja"  => array(
          "cor"  => "laranja",
          "sabor"  => "azedo",
          "forma"  => "redondo"
     ),
     "banana"  => array(
          "cor"  => "amarelo",
          "sabor"  => "pastoso",
          "forma"  => "cilndrico"
     )
);

echo $a["ma"]["sabor"];    # imprimir "doce"
?>
      </programlisting>
     </informalexample>
    </para>

   </sect2>
  </sect1>

  <sect1 id="language.types.object">
   <title>Objetos</title>

   <sect2 id="language.types.object.init">
    <title>Inicializao de Objeto</title>

    <para>
     Para inicializar um objeto, voc usa o comando <literal>new</literal> para 
     instanciar o objeto para uma varivel.

     <informalexample>
      <programlisting role="php">
&lt;?php
class foo {
    function do_foo() { 
        echo "Fazendo foo."; 
    }
}

$bar = new foo;
$bar->do_foo();
?>
      </programlisting>
     </informalexample>
    </para>
    <simpara>
     Para uma discusso completa, por favor leia a seo <link
     linkend="language.oop">Classes e Objetos</link>.
    </simpara>

   </sect2>
  </sect1>

  <sect1 id="language.types.type-juggling">
   <title>Type Juggling</title>

   <simpara>
    O PHP no requer (ou suporta) a definio explcita de tipo na declarao
    da varivel; um tipo de varivel  determinado pelo contexto na qual a varivel
     usada. Quer dizer, se voc atribui um valor de string a uma varivel
    <parameter>var</parameter>, <parameter>var</parameter> se torna uma string. Se voc
    ento atribui um valor inteiro a <parameter>var</parameter>, ela se torna inteira.
   </simpara>
   <para>
    Um exemplo de converso automtica de tipo no PHP  o operador de adio '+'. Se 
    qualquer um dos operandos  um 'double', ento todos os operandos so avaliados como
    'doubles', e o resultado ser um 'double'. Caso contrrio, os operandos sero 
    interpretados como inteiros, e o resultado tambm ser um inteiro. Note que isto NO
    muda os tipos dos prprios operandos; a nica mudana  em como os operandos so
    avaliados.
    <informalexample>
     <programlisting role="php">
$foo = "0";  // $foo  string (ASCII 48)
$foo++;      // $foo  a string "1" (ASCII 49)
$foo += 1;   // $foo agora  um inteiro (2)
$foo = $foo + 1.3;  // $foo agora  um double (3.3)
$foo = 5 + "10 Porquinhos"; // $foo  inteiro (15)
$foo = 5 + "10 Porquinhos";     // $foo  inteiro (15)
     </programlisting>
    </informalexample>
   </para>
   <simpara>
    Se os ltimos dois exemplos acima parecem incomuns, veja <link
    linkend="language.types.string.conversion">Converso de Strings</link>.
   </simpara>
   <simpara>
    Se voc deseja forar uma varivel a ser avaliada como um certo tipo, veja a seo
    sobre<link linkend="language.types.typecasting">Moldagem de tipo</link>. Se voc deseja
    mudar o tipo de uma varivel, veja <function>settype</function>.
   </simpara>
   <para>
    Se voc gostaria de testar qualquer um dos exemplos desta seo, voc pode cortar e colar
    os exemplos e inserir a seguinte linha para ver, por voc mesmo, o que est acontecendo:
    <informalexample>
     <programlisting role="php">
echo "o tipo de \$foo==$foo;  " . gettype ($foo) . "&lt;br&gt;\n";
     </programlisting>
    </informalexample>
   </para>
   <note>
    <para>
     O comportamento de uma converso automtica para matriz no  definida no momento.
     <informalexample>
      <programlisting role="php">
$a = 1;       // $a  um inteiro
$a[0] = "f";  // $a se torna uma matriz, com $a[0] mantendo "f"
      </programlisting>
     </informalexample>
    </para>
    <para>
     Enquanto o exemplo acima pode parecer que vai claramente resultar em $a se tornar uma 
     matriz, do qual o primeiro elemento  'f', considere isto:
     <informalexample>
      <programlisting role="php">
$a = "1";     // $a  uma string
$a[0] = "f";  // E as compensaes de string? O que acontece?
      </programlisting>
     </informalexample>
    </para>
    <para>
     Como o PHP suporta indexao para strings atravs de compensaes usando a mesma sintaxe
     que a indexao de matrizes, o exemplo acima conduz a um problema: $a deveria se tornar
     uma matriz com seu primeiro elemento sendo
     "f", ou "f" deveria se tornar o primeiro caractere da string $a?
    </para>
    <para>
     Por esta razo, como no PHP 3.0.12 e no PHP 4.0b3-RC4, o resultado desta converso
     automtica  considerado indefinido. Correes esto, portanto, sendo discutidas.
    </para>
   </note>

   <sect2 id="language.types.typecasting">
    <title>Moldagem de tipo</title>

    <para>
     Moldagem de tipo no PHP funciona de forma semelhante ao C: o nome do tipo desejado  escrito
     entre parnteses antes da varivel que se quer moldar.
     <informalexample>
      <programlisting role="php">
$foo = 10;   // $foo  um inteiro
$bar = (double) $foo;   // $bar  um double
      </programlisting>
     </informalexample>
    </para>
    <para>
     As moldagens permitidas so:
     <itemizedlist>
      <listitem>
       <simpara>(int), (integer) - molda para inteiro</simpara>
      </listitem>
      <listitem>
       <simpara>(real), (double), (float) - molda para 'double'</simpara>
      </listitem>
      <listitem>
       <simpara>(string) - molda para string</simpara>
      </listitem>
      <listitem>
       <simpara>(array) - molda para matriz</simpara>
      </listitem>
      <listitem>
       <simpara>(object) - molda para objeto</simpara>
      </listitem>
     </itemizedlist>
    </para>
    <para>
     Note que tabulaes e espaos so permitidos dentro dos parnteses, assim
     os exemplos a seguir so funcionalmente equivalentes:
     <informalexample>
      <programlisting role="php">
$foo = (int) $bar;
$foo = ( int ) $bar;
      </programlisting>
     </informalexample>
    </para>
    <para>
     Pode no ser exatamente bvio o que acontece quando ocorre a moldagem
     entre certos tipos. Por exemplo, o seguinte deve ser notado.
    </para>
    <para>
     Quando se molda uma varivel escalar ou string para uma matriz, 
     a varivel se tornar o primeiro elemento da matriz:
     <informalexample>
      <programlisting role="php">
$var = 'tchau';
$arr = (array) $var;
echo $arr[0];  // imprime 'tchau'  
      </programlisting>
     </informalexample>
    </para>
    <para>
     Quando se molda uma varivel escalar ou string para um objeto, a 
     varivel se tornar um atributo do objeto; o nome do atributo ser 'scalar':
     <informalexample>
      <programlisting role="php">
$var = 'tchau';
$obj = (object) $var;
echo $obj-&gt;scalar;  // imprime 'ciao'
      </programlisting>
     </informalexample>
    </para>

   </sect2>
  </sect1>

 </chapter>
 
<!-- 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:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->