Be careful when using this method, as the functionality isn't exactly the same as instantiating the extending class directly. This can really trip you up if you're using type hints or instanceof checks.
<?php
class CustomFileInfo extends SplFileInfo
{
public function getExtension()
{
$ext = strtolower(parent::getExtension());
return 'jpeg' === $ext ? 'jpg' : $ext;
}
}
$path = __DIR__ . '/foobar.jpeg';
$good = new CustomFileInfo($path);
echo "<pre>";
var_dump($good instanceof SplFileInfo);
var_dump($good instanceof CustomFileInfo);
$bad = new SplFileInfo($path);
$bad->setInfoClass('CustomFileInfo');
var_dump($bad instanceof SplFileInfo);
var_dump($bad instanceof CustomFileInfo);
echo "</pre>";
?>
Outputs:
bool(true)
bool(true)
bool(true)
bool(false)SplFileInfo::setInfoClass
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
SplFileInfo::setInfoClass
Референца за `splfileinfo.setinfoclass.php` со подобрена типографија и навигација.
SplFileInfo::setInfoClass
(PHP 5 >= 5.1.2, PHP 7, PHP 8)
SplFileInfo::setInfoClass — Ја поставува класата што се користи со SplFileInfo::getFileInfo() and објект за родителската патека на датотеката при успех, или
= NULL
Користете го овој метод за да поставите прилагодена класа што ќе се користи кога SplFileInfo::getFileInfo() and објект за родителската патека на датотеката при успех, или се повикуваат. Името на класата предадено на овој метод мора да биде SplFileInfo или класа изведена од SplFileInfo.
Параметри
class-
Името на класата што треба да се користи кога SplFileInfo::getFileInfo() and објект за родителската патека на датотеката при успех, или се повикуваат.
Вратени вредности
Не се враќа вредност.
Примери
Пример #1 SplFileInfo::setFileClass() example
<?php
// Define a class which extends SplFileInfo
class MyFoo extends SplFileInfo {}
$info = new SplFileInfo('foo');
// Set the class name to use
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>Горниот пример ќе прикаже нешто слично на:
object(MyFoo)#2 (0) { }