IIUC вам нужно выбрать все Y == 1, затем, если они не продолжаются, вы хотите, чтобы они были в другой группе, здесь мы используем cumsum
ua_dates.loc[df.Y==1,'Date'].groupby(ua_dates.Y.eq(0).cumsum()).agg(['min','max']).values.tolist()
Out[713]: [['23/02/2019', '24/02/2019'], ['19/02/2019', '21/02/2019']]
Вам нужно использовать только один $ при обращении к переменной-члену объекта с помощью строковой переменной.
echo $this->$string;
Как уже упоминали другие, $ this -> $ string должно помочь.
Однако этот
$this->$$string;
фактически оценит строку и снова оценит результат этого.
$foo = 'bar';
$bar = 'foobar';
echo $$foo; //-> $'bar' -> 'foobar'
вы были очень близки. вы только что добавили 1 дополнительный знак $.
public function foobar($string)
{
echo $this->$string; //will work
}
echo $this->$string; //should work
$$ string
вам понадобится только при доступе к локальной переменной, у которой в строке хранится только ее имя. Поскольку обычно в классе вы обращаетесь к нему как $ obj-> property
, вам нужно добавить только один $
.
Чтобы запомнить точный синтаксис, имейте в виду, что вы используете на $
больше, чем обычно. Поскольку вы используете $ object-> property
для доступа к свойству объекта, тогда динамический доступ осуществляется с помощью $ object -> $ property_name
.
Если вы хотите использовать значение свойства для получения имени свойства, вам нужно использовать скобки "{":
$this->{$this->myvar} = $value;
Даже если они ' Что касается объектов, то они работают:
$this->{$this->myobjname}->somemethod();