Sınıf tanımı sorun

2 Cevap php

Aşağıdaki gibi bir sınıf yazamıyor neden birisi bana söyleyebilir misiniz

<?php
class Foo 
{
?>
<?php
       function bar() {
           print "bar";
       }
}
?>

Ben o kadar aynı olduğunu düşünüyorum

<?php
class Foo 
{
       function bar() {
           print "bar";
       }
}
?>

2 Cevap

Ben çünkü Kılavuzun bu (quoting Instruction separation bölümünde) varsayalım:

The closing tag of a block of PHP code automatically implies a semicolon


This means that your code :

<?php
class Foo 
{
?>
<?php
       function bar() {
           print "bar";
       }
}
?>

: Aynı olarak mı

<?php
class Foo 
{;
   function bar() {
       print "bar";
   }
}
?>

Hangi olsun hatayı açıklıyor:

Parse error: syntax error, unexpected ';', expecting T_FUNCTION



EDIT : bu konuda biraz daha düşününce, bu sık sık benim şablonları dosyalarında bu gibi şeyler kullanmak düşünüyor, garip olduğunu düşündüm:

<?php if (...) : ?>
    blah
    blah
<?php endif ; ?>


So I tried this :

<?php
if (true)
{
?>
<?php
    echo "Hello, World!";
}
?>

And it works perfectly fine. OK...
Now, let's try adding the ;, like ?> is supposed to do :

<?php
if (true)
{;
    echo "Hello, World!";
}
?>

Bu çok iyi çalışıyor, ve ben aşağıdaki çıktıyı alıyorum:

Hello, World!


And, if changing the condition, just to be sure :

<?php
if (false)
{;
    echo "Hello, World!";
}
?>

Hiçbir çıkış değil, hata verir.


Considering the sentence I quoted earlier, this is not so surprising... But, still, I'm surprised anyway ^^

?>...<?, bir deyim, bu nedenle ilk olarak aynı, "echo", ya da "geri dönüş" gibi, sözdizimsel bir

<?php
 class Foo 
 {
   echo "";

   function bar() {
       print "bar";
   }
}

izin verilmeyen