CakeFest 2024: The Official CakePHP Conference

assert_options

(PHP 4, PHP 5, PHP 7, PHP 8)

assert_optionsÇeşitli kararlılık denetim seçeneklerini açar/kapar

Uyarı

Bu işlevin kullanımı PHP 8.3.0 itibariyle ÖNERİLMEMEKTEDİR. Bu işleve kesinlikle güvenilmemelidir.

Açıklama

assert_options(int $seçenek, mixed $değer = ?): mixed

assert() işlevi için çeşitli denetim seçeneklerini tanımlar veya mevcut değerlerini sorgular.

Bilginize: assert_options() işlevinin kullanımı önerilmiyor. php.ini yönergelerinde okuma yazma işlemleri için zend.assertions ve assert.exception ile ini_set() ve ini_get() kullanılabilir.

Bağımsız Değişkenler

seçenek

Sav Seçenekleri
Seçenek INI bağımsız değişkeni Öntanımlı Açıklama
ASSERT_ACTIVE assert.active 1 assert() değerlendirmesi etkin kılınır.
ASSERT_EXCEPTION assert.exception 1 Başarısız olan her sav için bir AssertionError oluşur
ASSERT_WARNING assert.warning 1 Her başarısız sav için bir PHP uyarısı çıktılanır
ASSERT_BAIL assert.bail 0 Savın başarısızlığı halinde çalışma durdurulur.
ASSERT_QUIET_EVAL assert.quiet_eval 0 Sav ifadesinin değerlendirilmesi sırasında hata raporlama kapatılır. PHP 8.0.0'da kaldırıldı.
ASSERT_CALLBACK assert.callback (null) Savın başarısızlığı halinde çağrılacak geriçağırım işlevi.

değer

Seçenek için isteğe bağlı yeni değer.

Geriçağırım işlevi ASSERT_CALLBACK seçeneğiyle veya assert.callback işleviyle aşağıdaki sözdizimine göre atanmalıdır:

assert_callback(
    string $dosya,
    int $satır,
    ?string $sav,
    string $açıklama = ?
): void
dosya
assert() işlevinin çağrıldığı dosya.
satır
assert() işlevinin çağrıldığı satır.
sav
PHP 8.0.0 öncesinde, assert() işlevine yalnızca bir dizge olarak aktarılması gerekiyordu. (Mantıksal değerler boş dizge olarak aktarılırdı.) PHP 8.0.0 ve sonrasında, daima null olarak aktarılmaktadır.
açıklama
assert() işlevine aktarılan açıklama.

değer bağımsız değişkenine boş bir dizge aktarılması assert geriçağırım işlevini sıfırlar.

Dönen Değerler

Belirtilen seçeneğin özgün değeri döner.

Hatalar/İstisnalar

seçenek geçerli bir seçenek değişse ValueError oluşur.

Sürüm Bilgisi

Sürüm: Açıklama
8.3.0 assert_option() artık kullanımdan kaldırılmıştır.
8.0.0 seçenek geçerli bir seçenek değişse ValueError oluşur. Evvelce false dönerdi.

Örnekler

Örnek 1 - assert_options() örneği

<?php
// Sav başarısızlıklarında çalışacak işlevimiz
function assert_failure($dosya, $satr, $sav, $ileti)
{
echo
"$dosya dosyasının $satr. satırındaki $sav başarısız: $message";
}

// Sınama işlevimiz
function test_assert($parameter)
{
assert(is_bool($parameter));
}

// Sav seçeneklerini atayalım
assert_options(ASSERT_ACTIVE, true);
assert_options(ASSERT_BAIL, true);
assert_options(ASSERT_WARNING, false);
assert_options(ASSERT_CALLBACK, 'assert_failure');

// Başarısız olmasını umarak bir sav ileri sürelim
test_assert(1);

// ASSERT_BAIL true olduğundan buraya asla gelinmez
echo 'Buraya gelinmemesi gerekir';
?>

Ayrıca Bakınız

add a note

User Contributed Notes 1 note

up
3
Fr?d?ric Bouchery
20 years ago
Here is an exemple how to use the assertion callback function :

<?php
assert_options
( ASSERT_CALLBACK, 'assert_callback');

function
assert_callback( $script, $line, $message ) {
echo
'You have a design error in your script <b>', $script,'</b> : line <b>', $line,'</b> :<br />';
echo
'<b>', ereg_replace( '^.*//\*', '', $message ), '</b><br /><br />';
echo
'Open the source file and check it, because it\'s not a normal behaviour !';
exit;
}

$x = 3;
assert('is_integer( $x ) && ($x >= 0) && ($x <= 10); //* $x must be an integer value from 0 to 10' );
echo
"0 <= $x <= 10";
?>

assertion is usefull for "design by contract" methodology ...
To Top