I’m not sure if I have done this correctly.
As I understand it:
if I have a class foo and a static method bar I can register that as the callback by passing the array array("foo","bar")
as the function name.
If I have an instance of a class in $foo and want to call the method bar I pass the array array($foo,'bar')
.
If I need to register an action inside the class itself would it work with array($this,'bar')
?
If I need to register an action inside the class itself would it work with
array($this, 'bar')
?
Yes, it works. $this
Docs is referring to the concrete instance needed for the callback. That’s exactly like the $foo
example you give. It’s just that $this
is bit more special, but it represents basically the same and it works flawlessly with callbacks in PHP.
Additional:
if I have a class foo and a static method bar I can register that as the callback by passing the array
array("foo","bar")
as the function name.
Yes you can do so, for the static function, you can write it as a string instead of the array as well: foo::bar
, see Callbacks Docs. Might be handy.