valid
تابع valid یعنی «معتبر بودنِ عنصر فعلی». «عنصر فعلی (Current Element)» همان تگی است که الان روی آن ایستاده ای. «ایتراتور (Iterator)» ابزاری برای قدم زدن بین آیتم هاست؛ مثل ورق زدن کارت ها.
تعریف و کاربرد تابع valid
تابع valid() پس از فراخوانی rewind() یا next() بررسی می کند آیا عنصر فعلی معتبر است یا نه. اگر معتبر باشد TRUE می دهد، در غیر این صورت FALSE.
سینتکس تابع valid
SimpleXMLIterator::valid();
گام های عملی
- XML را برای تست آماده کن؛ مثل یک یادداشت.
- SimpleXMLIterator بساز تا بتوانی بین تگ ها بگردی.
- با rewind() برو ابتدای عناصر.
- با valid() بررسی کن عنصر فعلی معتبر است.
- با next() جلو برو و دوباره valid() را چک کن.
مثال 1: بررسی اعتبار پس از rewind و next
<?php
$note = <<<XML
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Do not forget me this weekend!</body>
</note>
XML;
$xml = new SimpleXMLIterator($note);
// rewind to the first element
$xml->rewind();
// check if valid
var_dump($xml->valid());
// move to the next element
$xml->next();
// check if valid
var_dump($xml->valid());
?>
مثال 2: تنها یک عنصر وجود دارد
<?php
$xml = new SimpleXMLIterator('<books><book>Learn PHP</book></books>');
// rewind to the first element
$xml->rewind();
// check if valid
var_dump($xml->valid());
// move to the next element
$xml->next();
// check if valid - will be bool(false)
var_dump($xml->valid());
?>
نکته: وقتی valid مقدار FALSE برگرداند، به آخر عناصر رسیده ای یا لیست خالی است. برای شروع دوباره از تابع valid با rewind() کمک بگیر.
مطالعه بیشتر
- rewind در SimpleXML — برگشت به اولین عنصر.
- next در SimpleXML — حرکت به عنصر بعدی.
مستندات SimpleXMLIterator در PHP.net — توضیحات کامل کلاس.
simplexmliterator::valid — رفتار دقیق متد.
جمع بندی سریع
- valid() فقط TRUE یا FALSE می دهد.
- قبلش معمولاً rewind() و next() می آیند.
- FALSE یعنی پایان لیست یا عنصر نامعتبر.
- برای ادامه، دوباره next() یا rewind() بزن.