ReflectionFunctionAbstract::getClosureThis
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ReflectionFunctionAbstract::getClosureThis
Референца за `reflectionfunctionabstract.getclosurethis.php` со подобрена типографија и навигација.
ReflectionFunctionAbstract::getClosureThis
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
ReflectionFunctionAbstract::getClosureThis — Returns the object which corresponds to $this inside a closure
= NULL
(PHP 5 >= 5.4.0, PHP 7, PHP 8) $this If the function is a non-static closure, get the object bound to
Параметри
Оваа функција нема параметри.
Вратени вредности
inside the closure. $this Return the object instance represented by Затворањеinside the $this null
" се враќа наместо тоа.
Примери
. If the function is not a closure or if it has no Example #1 Example showcasing difference between, ReflectionFunctionAbstract::getClosureScopeClass()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во ReflectionFunctionAbstract::getClosureThis() ReflectionFunctionAbstract::getClosureCalledClass()
<?php
class A
{
public function getClosure()
{
var_dump(self::class, static::class);
return function() {};
}
}
class B extends A {}
$b = new B();
$c = $b->getClosure();
$r = new ReflectionFunction($c);
var_dump($r->getClosureThis()); // $this === $b, since a non-static closure take the object context
var_dump($r->getClosureScopeClass()); // Corresponds to the self::class resolution inside a closure
var_dump($r->getClosureCalledClass()); // Corresponds to the static::class resolution inside a closure
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
string(1) "A"
string(1) "B"
object(B)#1 (0) {
}
object(ReflectionClass)#4 (1) {
["name"]=>
string(1) "A"
}
object(ReflectionClass)#4 (1) {
["name"]=>
string(1) "B"
}
with a closure in the object context Example #1 Example showcasing difference between, ReflectionFunctionAbstract::getClosureScopeClass()Препорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во ReflectionFunctionAbstract::getClosureThis() Example #2 Example showcasing difference between
<?php
class A
{
public function getClosure()
{
var_dump(self::class, static::class);
return static function() {};
}
}
class B extends A {}
$b = new B();
$c = $b->getClosure();
$r = new ReflectionFunction($c);
var_dump($r->getClosureThis()); // NULL, since the pseudo-variable $this is not available in a static context
var_dump($r->getClosureScopeClass()); // Corresponds to the self::class resolution inside a closure
var_dump($r->getClosureCalledClass()); // Corresponds to the static::class resolution inside a closure
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
string(1) "A"
string(1) "B"
NULL
object(ReflectionClass)#4 (1) {
["name"]=>
string(1) "A"
}
object(ReflectionClass)#4 (1) {
["name"]=>
string(1) "B"
}
Види Исто така
- Example #1 Example showcasing difference between with a static closure without an object context
- ReflectionFunctionAbstract::getClosureScopeClass() - Враќа класа што одговара на опсегот внатре во затворање
- Доцни статични врзувања