Тестирование isset ($ this) не работало для меня, как упомянул troelskn «$ this будет установлен как контекст вызывающего абонента».
abstract class parent
{
function bar()
{
if( isset( $this ) ) do_something();
else static::static_bar();
}
function static static_bar()
{
do_something_in_static_context();
}
}
class child extends parent
{
...
}
$foo = new child();
$foo->bar(); //results in do_something()
child::bar(); //also results in do_something()
В моем случае у меня есть родительский класс с объектом и статической контекстной функцией, которая выполняет ту же задачу в дочернем классе. isset ($ this) всегда возвращал true, однако я заметил, что хотя $ this переключается между классом child в объектном контексте и вызовом (?) класса в статическом контексте, чудесная магическая константа __class__
осталась родительской для класса!
Вскоре после нахождения функции is_a мы можем проверить, находимся ли мы в статическом контексте:
if( is_a($this, __CLASS__) ) ...
Возвращает true в контексте объекта, false в статическом контексте.
Пожалуйста, протестируйте свои собственные реализации, так как я проверяю это только для моего конкретного сценария (уникальный случай вызова наследования) в 5.3.
К сожалению (для моего случая) я пока не могу найти способ вызвать static_bar()
, так как $ this и static относятся к отдельному классу, а __class__
относится к родительскому классу. Мне нужен способ вызова child :: static_bar () ...
Взгляните на position ()
:
var pos = $("#myimage").position(); // returns an object with the attribute top and left
pos.top; // top offset position
pos.left; // left offset position
Вы сказали две вещи:
Итак вы должны установить изображение как «фоновое изображение» родительского блока с помощью «background-repeat: no-repeat».
Положение изображения можно контролировать с помощью свойства «background-position».
Конечно, могут быть альтернативные реализации, использующие в родительском div и умное взаимодействие «position: absolute» и «position: relative», но я видел, что перемещение изображений более плавное, если изображение является фоном.
Надежда, которая помогает.
Ура, jrh