Предыдущие ответы предполагают, что ветвь, подлежащая сбросу, является текущей ветвью (выведено). В комментариях OP hap497 пояснил, что ветвь действительно проверена, но это явно не требуется исходным вопросом. Поскольку существует хотя бы один «повторяющийся» вопрос, Полностью отбросить ветвь до состояния репозитория , который не предполагает, что ветвь проверена, вот альтернатива:
Если ветка " mybranch "в настоящий момент не проверяется, чтобы сбросить его на удаленную ветвь« myremote / mybranch », вы можете использовать эту команду low-level :
git update-ref refs/heads/mybranch myremote/mybranch
метод оставляет извлеченную ветвь такой, какой она есть, а рабочее дерево - нетронутым. Он просто перемещает голову mybranch в другую фиксацию, независимо от того, что указано в качестве второго аргумента. Это особенно полезно, если несколько ветвей необходимо обновить до новых удаленных головок.
Будьте осторожны при выполнении этого, и используйте gitk
или аналогичный инструмент, чтобы дважды проверить источник и место назначения. Если вы случайно сделаете это в текущей ветке (и git не сможет удержать вас от этого), вы можете запутаться, потому что новое содержимое ветви не соответствует рабочему дереву, которое не изменилось (чтобы исправить, обновить ветвь снова, где он был раньше).
class A
{
private $b = 'c';
}
$obj = new A();
$r = new ReflectionObject($obj);
$p = $r->getProperty('b');
$p->setAccessible(true); // <--- you set the property to public before you read the value
var_dump($p->getValue($obj));
getProperty
генерирует исключение, а не ошибку. Значимость заключается в том, что вы можете справиться с этим и сохранить себя if
:
$ref = new ReflectionObject($obj);
$propName = "myProperty";
try {
$prop = $ref->getProperty($propName);
} catch (ReflectionException $ex) {
echo "property $propName does not exist";
//or echo the exception message: echo $ex->getMessage();
}
Чтобы получить все частные свойства, используйте $ref->getProperties(IS_PRIVATE);
IS_PRIVATE
должна быть ReflectionProperty::IS_PRIVATE
– Nicola Pedretti
25 January 2018 в 00:03
private
видны только для классов, в которых они были созданы. Но в этом случаеhasProperty
вернетfalse
– zerkms 23 July 2012 в 00:59$p = $r->getParentClass()->getProperty('b');
– AlexandrX 28 May 2017 в 05:11