我想檢查一個類中的局部變量是公有還是私有的。 的原因是爲了創建這樣一個功能:檢查變量是否公開php
function ToArray() {
$arr = array();
foreach($this as $key => $val) {
$arr[$key] = $val;
}
return $arr;
}
這個功能也返回私人領域,我不希望出現這種情況。我怎樣才能在這裏獲得公共變量?
我想檢查一個類中的局部變量是公有還是私有的。 的原因是爲了創建這樣一個功能:檢查變量是否公開php
function ToArray() {
$arr = array();
foreach($this as $key => $val) {
$arr[$key] = $val;
}
return $arr;
}
這個功能也返回私人領域,我不希望出現這種情況。我怎樣才能在這裏獲得公共變量?
$foo = new Foo();
$reflect = new ReflectionClass($foo);
$props = $reflect->getProperties(ReflectionProperty::IS_PUBLIC);
foreach ($props as $prop) {
print $prop->getName() . "\n";
}
var_dump($props);
$ key = $ prop-> getName(); $ value = $ this - > $ key; 謝謝。 –
當您從其他來源複製文本時,**必須鏈接回原始來源,否則它看起來像剽竊。 – 2015-10-12 15:19:46
確保遵循一些命名約定您的私有變量(如我在前面加上_
他們)
然後就返回那些確實不在其關鍵的開始_
變量。
該語言中有關鍵字,因此我們不需要這樣的約定。它僅僅是[匈牙利語](http://en.wikipedia.org/wiki/Hungarian_notation)的訪問而不是類型(並且人們普遍認爲匈語符號在現代語言中是不需要的,所以甚至不用打擾) ... – ircmaxell
要獲取所有公共屬性的列表,請致電get_object_vars()
。
(提示:通過對象調用它本身將返回所有屬性。)
你不能這樣做'的foreach($這個...)' – Neal
是的,我可以,我也是。對象上的Foreach循環遍歷對象中的屬性。只需自己嘗試一下。 Foreach on $ this也會返回私有和受保護的屬性。 –
它是在PHP 5之後。 –