Wpis z mikrobloga

#programowanie #php #zagadka
Zagadka:

var_dump($filter->inCategories);
$inCategories = $filter->inCategories;
var_dump(empty($filter->inCategories));
var_dump(empty($inCategories));
die;

Wynik działania:

array (size=1)
0 => string '17' (length=2)
boolean true
boolean false

Kto wie kiedy to możliwe ;-)
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ak__: magic __isset() zwraca false, __get() tablicę, a pole $filter->inCategories nie jest zdefiniowane (albo niedostępne).
  • Odpowiedz
@gajowy_marucha: To pobiera przez __get(). Magikami można jeszcze lepszy mindfuck zrobić:

$x->test = 100;
var_dump($x->test);
...i wynik: 200:)
tu już $x->test musi być wcześniej zdefiniowane, ale jako private/protected.
  • Odpowiedz
magiki, magiki ( ͡° ͜ʖ ͡°)
inCategories jest elementem tablicy protected $filters, której elementy są pobierane za pomocą __get
  • Odpowiedz