Передать значение объекту только из другого объекта

Я нахожусь в такой ситуации: я хочу, чтобы объект делал что-то ТОЛЬКО, если он был вызван другим объектом:

EX:

    class obj{

private $doIt=false;
private function enableDoIt(){

$this->doIt=true;

}

public function fn(){

$obj= new obj();
$obj->enableDoIt(); // must work

}

}


$obj=new obj();
$obj->enableDoIt(); // <- must fail

Я хочу включить параметр только из своего кода и не позволять пользователю класса устанавливать его, поэтому я не могу использовать публичные сеттеры …

Любая идея?

РЕДАКТИРОВАТЬ:

Как я вижу в вашем комментарии, мне нужно что-то вроде:

obj friend obj

Таким образом, я могу использовать свои личные переменные внутри моего класса с новой версией самого myclass.

class obj{

private $count=0;

private function fn(){
nc=new obj();
nc->cont=2; //called from inside class obj -> want to work
}
}

nc=new obj();
nc->cont=2; //called from outside class obj -> want to not work

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]