nereye i SPL predefined constants
CHILD_FIRST
, SELF_FIRST
gibi hakkında bazı referanslar alabilirim? üzerine php.net i (sadece kendi türü) çok alamadım.
nereye i SPL predefined constants
CHILD_FIRST
, SELF_FIRST
gibi hakkında bazı referanslar alabilirim? üzerine php.net i (sadece kendi türü) çok alamadım.
Ben page you linked to adlı sınıfı sabitleri (bazı), daha sonra diğer birkaç puan yükseltmek taslağı olacak.
RecursiveIteratorIterator::LEAVES_ONLY
yineleme modu. (Bu default modu içindir.)
Bu yineleme modu (üçünden biri) üzerinde yaprakları olan, (daha fazla şube halinde diğer şube veya, filizlenen dalları bir dizi ile bir ağaç gibi bir özyinelemeli yapının sadece düşünmek "yapraklar" için yineleme sırasında mevcut öğeleri kısıtlar sonu). Dizide array('a'=>array('b','c'),'d','e'=>array('f','g'))
yaprakları b
, c
, d
, f
ve {[(5) }] onlar sonunda olduğundan, onlar daha fazla öğe filiz yok.
Eylem bu modu gösteren bir kod parçacığını vermek için (farklı modlar ve bayraklar kullanarak özyinelemeli yineleyici yineleyici ile aynı özyinelemeli dizi yineleyici sahip bir dizi örnek olacaktır):
$array = array('a'=>array('b','c'),'d','e'=>array('f','g'));
$ait = new RecursiveArrayIterator($array);
// Only iterate over leaves
$rit = new RecursiveIteratorIterator($ait, RecursiveIteratorIterator::LEAVES_ONLY);
foreach ($rit as $item) {
echo $item;
}
// Output: bcdfg
RecursiveIteratorIterator::SELF_FIRST
yineleme modu.
Bu yineleme modu yineleme zaman "ana" öğeleri (yani yapraklar) (varsa) çocukları önce yerleştirilmek üzere olduğunu yineleyici bildirir.
// Parents come first
$rit = new RecursiveIteratorIterator($ait, RecursiveIteratorIterator::SELF_FIRST);
foreach ($rit as $key => $item) {
if (is_array($item)) echo "[$key]"; // parent
else echo $item; // child
}
// Output: [a]bcd[e]fg
RecursiveIteratorIterator::CHILD_FIRST
yineleme modu.
Bu tür çocuklar öğeleri (yaprak) o üst / alt pozisyonlarda etrafında bu yineleme modu swapları gösterdiği gibi ebeveyn ardından, ilk gelen:
// Children first
$rit = new RecursiveIteratorIterator($ait, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($rit as $key => $item) {
if (is_array($item)) echo "[$key]"; // parent
else echo $item; // child
}
// Output: bc[a]dfg[e]
RecursiveIteratorIterator constructor flags
Bu özyinelemeli Yineleyicilerin yinelemek üç modları için sadece sabitleri (ilk sadece, ebeveyn birinci ya da çocuk bırakır) vardır. RecursiveIteratorIterator da bir alt nesne bir istisna atar {bayraklar ise (__toString
vb öğeleri aramak için olsun, durdurmak isteyip gibi diğer davranışını etkileyen bir flags
argüman undocumented eşit olan [(2)]} sabit).
Other SPL constants
Bu benim bir sonraki noktaya ile bağlar. Sınıfların çoğu bile kendi sabitlerini liste yok: SPL genelinde mevcuttur sabitleri tüm listeler tek, tek elden nokta vardır. Ancak reflection kullanılabilir sabitleri bir göz atmanız için kullanabilirsiniz. Komut satırında RecursiveIteratorIterator en sabitleri bir listesini görmek için php --rc recursiveiteratoriterator | grep -i constant
gibi bir şey kullanabilirsiniz.
Lack of documentation
PHP kılavuzunda mevcut belgeler gönüllüler tarafından tamamen (hemen hemen) yazılır. Özellikle SPL hala o bölgede gemi şekli önce çalışma büyük miktarda yapmak için varlık ile bir bamteli up-to-standart. Herkes bu yardım etmek istiyorsa (SO bu reklam düşünecektim eğer emin değil?) Sonra (phpdoc-subscribe@lists.php boş bir mail gönderin bana ulaşın (salathe@php.net) veya PHP belgeleri posta listesine kaydolmak . net) ve daha neşeli içeri takılıyorum.
http://php.net/~helly/php/ext/spl/ de SPL files bir göz atın.