Ne bir geri çağırma işlevi nedir ve nasıl OOP ile kullanırım

4 Cevap php

Ben makalelerin tam bir sayfada her makaleden görüntü, başlık, tarih ve açıklama kapmak için php simple HTML DOM parser kullanmak istiyorum. API bakarken ben bir geri çağırma işlevini ayarlar bir set_callback var dikkat edin. Ancak bu ne emin değil im veya nasıl kullanmak istiyorsunuz? Onun bütün fonksiyonlarını çağırmak için bu kullanmak için varsa im merak, bazı şeyleri soyarak bir işlevi çağırmak için kullanılan örneklerden biri?

Ben bu kullanmak neden merak im sanırım, ve ben daha önce bir geri çağırma işlevi rastlamak hiç olarak ne yapar!

4 Cevap

Burada temel bir geri çağırma işlevi örnek:

<?php

function thisFuncTakesACallback($callbackFunc)
{
    echo "I'm going to call $callbackFunc!<br />";
    $callbackFunc();
}

function thisFuncGetsCalled()
{
    echo "I'm a callback function!<br />";
}

thisFuncTakesACallback( 'thisFuncGetsCalled' );
?>

Böyle bir değişkende saklanır adını vardır bir işlevini çağırabilirsiniz: $variable().

Yani, yukarıdaki örnekte, biz sonra içeri geçti işlevini çağırır thisFuncTakesACallback() için thisFuncGetsCalled işlevin adı geçmesi

Bir geri arama işlevi belirli bir yöntem tarafından döndürülen ne olursa olsun veri üzerinde bu işlevi kullanın edecektir.

Ben nasıl bu özel kütüphane çalışır emin değilim, ama o kadar basit bir şey olabilir:

$html = file_get_html('http://example.com');
$html->set_callback('make_bold');
$html->find('#title'); // returns an array

function make_bold($results) {
// make the first result bold
  return '<b>'.$results[0].'</b>';
}

yani, fonksiyon "make_bold()" bulunan herhangi bir veri üzerinde çalışacak. Yine, ben bu özel kütüphane işleri (örneğin, geri çağırma işlevi çağırdı olsun, hangi yöntemleri) nasıl emin değilim

Bir geri çağırma bir işlev, bir nesne örneği 'yöntemi, ya da bir sınıf statik bir yöntem ya da olduğunu. Her iki şekilde de, bir işlev işaretçisi naziksiniz. Bazı dillerde, fonksiyonları belirli bir türüdür. Yani bir değişkene bir işlev atayabilirsiniz. Bunlar genellikle fonksiyon yönelimli diller denir. Iyi bir örnek Javascript olduğunu.

PHP, bir geri çağırma herhangi biri olabilir:

$fn = 'foo'; // => foo()
$fn = array($obj, 'foo'); // => $obj->foo()
$fn = array('Foo', 'bar'); // => Foo::bar()

is_callable için manuel girişine bakın.

Sen oldukça ayrıntılı işlevi call_user_func ile bir geri çağırabilirsiniz.

Ancak, bir geri arama hakkında soruyorsun biliyorum eğer o aradığınız veri çekmek için SimpleXML kullanmak daha kolay olabilir PHP5 kullanarak.