Próbuję utworzyć obiekt PHP (5), który może iterować przez jego właściwości, budując zapytanie SQL oparte tylko na jego właściwościach publicznych, a nie prywatnych.Wykryj, czy właściwość obiektu jest prywatna w PHP
Ponieważ ta metoda obiektu nadrzędnego ma być używana przez obiekty podrzędne, nie można po prostu pominąć właściwości prywatnych według nazwy (nie będę wiedział, jakie są one w obiektach potomnych).
Czy istnieje prosty sposób wykrywania wewnątrz obiektu, który z jego właściwości jest prywatny?
Oto uproszczony przykład tego, co mam do tej pory, ale wynik ten zawiera wartość $ bar:
class testClass {
public $foo = 'foo';
public $fee = 'fee';
public $fum = 'fum';
private $bar = 'bar';
function makeString()
{
$string = "";
foreach($this as $field => $val) {
$string.= " property '".$field."' = '".$val."' <br/>";
}
return $string;
}
}
$test = new testClass();
echo $test->makeString();
daje wyjście:
property 'foo' = 'foo'
property 'fee' = 'fee'
property 'fum' = 'fum'
property 'bar' = 'bar'
bym się podoba nie uwzględniać "paska".
Jeśli istnieje lepszy sposób na powtórzenie tylko właściwości publicznych obiektu, to też by tu zadziałało.
Dzięki - myślę, że pokonac cię do tego przez około 30 sekund, ale tak, działa dokładnie tak, jak potrzeba. – Hippyjim
Tak, wydaje mi się, że za dużo czasu poświęcono na zrobienie ładnej odpowiedzi z czystymi i uporządkowanymi linkami do dokumentów. Lekcja, szybkie i brudne odpowiedzi od teraz! :-) – salathe