SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2)

SplFileInfo::setInfoClass Задает имя класса, объекты которого будут создаваться методами getFileInfo и getPathInfo

Описание

public void SplFileInfo::setInfoClass ([ string $class_name ] )

Задает имя класса, объекты которого будут создаваться при вызове методов getFileInfo и getPathInfo. Класс должен быть наследоваться от SplFileInfo.

Список параметров

class_name

Имя класса.

Возвращаемые значения

Эта функция не возвращает значения после выполнения.

Примеры

Пример #1 Пример использования SplFileInfo::setFileClass()

<?php
// определяем класс наследник SplFileInfo
class MyFoo extends SplFileInfo {}

$info = new SplFileInfo('foo');
// задаем имя класса
$info->setInfoClass('MyFoo');
var_dump($info->getFileInfo());
?>

Результатом выполнения данного примера будет что-то подобное:

object(MyFoo)#2 (0) { } 

Смотрите также

Коментарии

Автор:
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)
2019-11-05 17:21:59
http://php5.kiev.ua/manual/ru/splfileinfo.setinfoclass.html

    Поддержать сайт на родительском проекте КГБ