ReflectionProperty::getSettableType

(PHP 8 >= 8.4.0)

ReflectionProperty::getSettableTypeReturns the parameter type of a setter hook

说明

public ReflectionProperty::getSettableType(): ?ReflectionType

Returns the parameter type of a set hook. If no set hook is defined, it behaves identically to ReflectionProperty::getType().

参数

此函数没有参数。

返回值

  • This method returns an instance of ReflectionType that matches the settable type for the property.
  • If there is a set hook that defines an explicit type, that will be returned.
  • If the hook does not specify a type, or it does not exist, the property type will be returned, identically to ReflectionProperty::getType(). This value may be null if the property is untyped.
  • If the property is virtual and has no set hook, a ReflectionType instance for never will be returned.

示例

示例 #1 ReflectionProperty::getSettableType() example

<?php
class Example
{
public
string $basic {
set => strtolower($value);
}

public
string $wider {
set(string|Stringable $value) => (string)$value;
}

public
string $virtual {
get => 'Do not change this';
}

public
$untyped = 'silly';
}

$rClass = new \ReflectionClass(Example::class);

var_dump($rClass->getProperty('basic')->getSettableType());
var_dump($rClass->getProperty('wider')->getSettableType());
var_dump($rClass->getProperty('virtual')->getSettableType());
var_dump($rClass->getProperty('untyped')->getSettableType());
?>

以上示例会输出:

object(ReflectionNamedType)#3 (0) {
}
object(ReflectionUnionType)#2 (0) {
}
object(ReflectionNamedType)#3 (0) {
}
NULL

参见

添加备注

用户贡献的备注

此页面尚无用户贡献的备注。
To Top