SplFileInfo::setInfoClass

(PHP 5 >= 5.1.2, PHP 7)

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

Описание

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

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

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

class_name

Имя класса используемого при вызове SplFileInfo::getFileInfo() и SplFileInfo::getPathInfo().

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

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

Примеры

Пример #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

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