assert
  (PHP 4, PHP 5, PHP 7, PHP 8)
assert — Savın doğruluğuna bakar
  
 
  Açıklama
  
  
  
   Savlar yalnızca hata ayıklama özelliği olarak kullanılmalıdır. Bir kullanımı,
   her zaman true olması gereken, aksi takdirde bazı yazılım hatalarını
   gösteren ön koşullar için tutarlılık denetimidir. Başka bir kullanımı ise,
   eklenti işlevleri veya belirli sistem sınırları ve özellikleri gibi belirli
   özelliklerin varlığını sınamaktır.
  
  
   Sav denetimi devre dışı bırakılabilecek şekilde yapılandırılabileceğinden,
   girdilerin denetlenmesi gibi normal çalışma zamanı işlemleri için
   kullanılmamalıdır. Genel bir kural olarak, sav denetimi devre dışı
   bırakılsa bile kod beklendiği gibi davranmalıdır.
  
  
   assert() oluşumu, sav ile belirtilen
   beklentinin geçerliliğini sınar.
  
  
   assert() oluşumunun davranışı aşağıdaki INI ayarları ile
   değiştirilebilir:
   
    
     Sav yapılandırma yönergeleri
    
    
     
      
       | İsim | Öntanımlı | Açıklama | Sürüm Bilgisi | 
     
     
      
       | zend.assertions | 1 | 
         
          1: kodu üret ve çalıştır (geliştirme kipi)
          
          0: kodu üret ama çalışma anında etrafından dolaş
          -1: kod üretme (üretim kipi) |  | 
      
       | assert.active | true | falseise, assert() beklentiyle ilgilenmez
        ve koşulsuz olaraktruedöndürür. | PHP 8.3.0 ve sonrasında kullanımı önerilmiyor. | 
      
       | assert.callback | null | 
        Sav başarısız olduğunda çağrılacak kullanıcı tanımlı işlev. Sözdizimi:
         | 
        PHP 8.0.0 öncesinde, işlevin sözdizimi şöyle olmalıydı:
        PHP 8.3.0 ve sonrasında kullanımı önerilmiyor. | 
      
       | assert.exception | 0 | 
         
          1: Sav başarısız olursa istisnayı yavrula:
          Yaistisnabağımsız değişkeni ile sağlanan nesneyi
          ya da bir nesne sağlanmamışsa AssertionError
          nesnesini.
          0: Yukarıda açıklandığı gibi bir
          Throwable kullan veya oluştur, ancak o
          nesneyi örnekllemek yerine nesneyi temel alan bir uyarı oluştur
          (PHP 5 davranışıyla uyumlu) | PHP 8.3.0 ve sonrasında kullanımı önerilmiyor. | 
      
       | assert.bail | false | trueise, beklenti karşılanmazsa PHP betiğinin yürütülmesini iptal eder. | PHP 8.3.0 ve sonrasında kullanımı önerilmiyor. | 
      
       | assert.warning | true | trueise, beklenti karşılanmazsa birE_WARNINGçıktılanır. Bu INI ayarı, assert.exception
        etkinleştirilmişse etkisizdir. |  | 
     
    
   
  
  
 
  Bağımsız Değişkenler
  
   
    
     - sav
- 
      
       Çalıştırılacak ve sonucu, savın başarını belirlemekte kullanılacak
       değeri döndüren bir ifade olmalıdır.
       Uyarı
       
        PHP 8.0.0 öncesinde, savPHP kodu olarak
        yorumlanan ve eval() ile yürütülen bir dizge idi.
        Bu dizge geri çağırım işlevine üçüncü bağımsız değişken olarak
        aktarılırdı. PHP 7.2.0'da kullanımı artık
        ÖNERİLMEMEKTE olup PHP 8.0.0'da
        kullanımdan KALDIRILMIŞTIR.
 
 
- açıklama
- 
      
       açıklamabir Throwable
       örneği ise, yalnızcasavyürütülüp başarısız
       olduğunda yavrulanır.
 Bilginize: 
         
         PHP 8.0.0 ve sonrasında, bu, olası bir tanımlanmış onaylama geri
         çağrım işlevi çağrılmadan önce yapılır.
         
 Bilginize: 
         
         PHP 8.0.0 ve sonrasında, nesne
         assert.exception
         yapılandırmasına bakılmaksızın yavrulanır.
         
 Bilginize: 
         
         PHP 8.0.0 ve sonrasında, bu durumda
         assert.bail etkisizdir.
         
 
        savbaşarısız olursa başarısızlık iletisine
       dahil edilecek isteğe bağlı bir açıklama.açıklamabir dizge ise bir istisna veya uyarı
       çıktılanırsa kullanılır.
 
      açıklamakullanılmazsa, derleme zamanında
      assert() çağrısı için kaynak koduna eşit öntanımlı
      bir açıklama oluşturulur.
 
- istisna
- 
      
       PHP 7'de, ikinci bağımsız değişken açıklayıcı bir dizge yerine bir
       Throwable nesnesi olabilir; sav başarısız
       olursa ve assert.exception
       yapılandırma yönergesi de etkinse bu nesne örneklenir.
       
 
 
  Dönen Değerler
  
   Aşağıdakilerin en az biri doğruysa ise true döner.
  
  
   - zend.assertions=0
- zend.assertions=-1
- assert.exception=1
- assert.bail=1
- açıklamada özel bir istisna nesnesi
    belirtilmiş.
   Koşulların hiçbiri doğru değilse ancak sav doğru ise
   assert() true yoksa false ile döner.
  
  
 
 
  Örnekler
   
    Örnek 1 - assert() örneği
    
<?php
assert(1 > 2);
echo 'Hi!';
?>
     
    
     Savlar etkin olduğunda
     (zend.assertions=1
     yukarıdaki örneğin çıktısı:
    
Fatal error: Uncaught AssertionError: assert(1 > 2) in example.php:2
Stack trace:
#0 example.php(2): assert(false, 'assert(1 > 2)')
#1 {main}
  thrown in example.php on line 2
 
    
     Savlar etkin olmadığında (zend.assertions=0 veya
     zend.assertions=-1) yukarıdaki örneğin çıktısı:
    
 
   
    Örnek 2 - Özel ileti kullanımı
    
<?php
assert(1 > 2, "Birin ikiden büyük olması bekleniyor");
echo 'Hi!';
?>
     
    
     Savlar etkinken yukarıdaki örneğin çıktısı:
    
Fatal error: Uncaught AssertionError: Expected one to be greater than two in example.php:2
Stack trace:
#0 example.php(2): assert(false, 'Expected one to...')
#1 {main}
  thrown in example.php on line 2
 
    
     Savlar etkin değilken yukarıdaki örneğin çıktısı:
    
 
   
    Örnek 3 - Özel istisna sınıfı kullanımı
    
<?php
class ArithmeticAssertionError extends AssertionError {}
assert(1 > 2, new ArithmeticAssertionError("Expected one to be greater than two"));
echo 'Hi!';
     
    
     Savlar etkinken yukarıdaki örneğin çıktısı:
    
Fatal error: Uncaught ArithmeticAssertionError: Expected one to be greater than two in example.php:4
Stack trace:
#0 {main}
  thrown in example.php on line 4
 
    
     Savlar etkin değilken yukarıdaki örneğin çıktısı: