Интересно, возможно ли это ниже в объекте класса php, как и в javascript (jquery).PHP-класс: запись функций внутри объекта?
В JQuery, я хотел бы сделать,
(function($){
var methods = {
init : function(options) {
// I write the function here...
},
hello : function(options) {
// I write the function here...
}
}
$.fn.myplugin = function(method) {
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || ! method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist.');
}
return this;
};
})(jQuery);
Так что, когда я хочу, чтобы вызвать функцию внутри myplugin
, я просто делаю это,
$.fn.myplugin("hello");
Итак, я подумал, что может быть способ сделать это в php также, когда вы приходите писать класс?
$method = (object)array(
"init" => function() {
// I write the function here...
},
"hello" => function() {
// I write the function here...
}
);
EDIT:
Может быть классом, как это?
class ClassName {
public function __construct(){
//
}
public function method_1(){
$method = (object)array(
"init" => function() {
// I write the function here...
},
"hello" => function() {
// I write the function here...
}
);
}
public function method_2(){
$method = (object)array(
"init" => function() {
// I write the function here...
},
"hello" => function() {
// I write the function here...
}
);
}
}
спасибо, но не должны они '$ obj = new Example();' и 'public function Example() {}' ?? – laukok
@lauthiamkok - Следовательно, «Это не проверено» ... Я сделаю небольшие изменения. – nickb