--TEST-- getPreviousSibling() and getNextSibling() --EXTENSIONS-- tidy --FILE--
first
third
HTML); $body = $tidy->body(); function format($str) { if (is_null($str)) return $str; return trim($str); } foreach ($body->child as $i => $child) { echo "=== From the perspective of child $i ===\n"; echo "Previous: "; var_dump(format($child->getPreviousSibling()?->value)); echo "Next: "; var_dump(format($child->getNextSibling()?->value)); } echo "=== html element has only the doctype as sibling ===\n"; echo "Previous: "; var_dump(format($tidy->html()->getPreviousSibling()?->value)); echo "Next: "; var_dump(format($tidy->html()->getNextSibling()?->value)); ?> --EXPECT-- === From the perspective of child 0 === Previous: NULL Next: string(15) "" === From the perspective of child 1 === Previous: string(16) "
first
" Next: string(16) "
third
" === From the perspective of child 2 === Previous: string(15) "" Next: NULL === html element has only the doctype as sibling === Previous: string(15) "" Next: NULL