PHP'nin session_set_save_handler içinde geri çağırma yöntemleri özel olabilir mi?

2 Cevap php

PHP bir özel oturum işleyicisi yazma ve session_set_save_handler özel tanımlanmış yöntemler yapmaya çalışıyorum.

session_set_save_handler(
    array('Session','open'),
    array('Session','close'),
    array('Session','read'),
    array('Session','write'),
    array('Session','destroy'),
    array('Session','gc')
);

Örneğin ben herhangi bir hata olmadan özel olması için, açık işlevi ayarlayabilirsiniz, ama ben yazma yöntemi özel yaptığınızda bana havlıyor.

Fatal error: Call to private method Session::write() from context '' in Unknown on line 0

Bu bir hata oldu ya da bu etrafında bir yolu olup olmadığını merak ediyordum. Daha doğrusu istemem ben kesinlikle sadece kamu yapabilirsiniz Kısıtlama, ama. Orada php.net benzer bir şey eluding geçen yıl bir yazı oldu, ama hemen herkes herhangi bir fikirleri olup olmadığını bilmek istiyorum. Bu gerçekten önemli mi? Benim geliştirme kutusunda PHP 5.2.0 kullanıyorum, ama kesinlikle yükseltme olabilir.

2 Cevap

Onlar kamu olmak zorunda. Sizin sınıf örneği ve kendi kodunda yaptığınız tam şekilde denir.

Yani, kamuya HERHANGİ sınıf özel bir yöntemi çağırmak için nasıl anlamaya sürece, o zaman hiçbir = P

Geri arama dizinin ilk parametre olarak bir örneği nesne geçmek.

$session = new Session();
session_set_save_handler(
    array($session,'open'),
    array($session,'close'),
    array($session,'read'),
    array($session,'write'),
    array($session,'destroy'),
    array($session,'gc')
);