I have seen code like this:
function($cfg) use ($connections) {}
but php.net doesn't seem to mention that function. I'm guessing it's related to scope, but how?
In PHP, variables can be declared anywhere in the script. The scope of a variable is the part of the script where the variable can be referenced/used.
use is not a function, it's part of the Closure syntax. It simply makes the specified variables of the outer scope available inside the closure. Show activity on this post. It is telling the anonymous function to make $connections (a parent variable) available in its scope.
The isset() function checks whether a variable is set, which means that it has to be declared and is not NULL. This function returns true if the variable exists and is not NULL, otherwise it returns false.
php Class First { private $a; public $b; public function create(){ $this->a=1; //no problem $thia->b=2; //no problem } public function geta(){ return $this->a; } private function getb(){ return $this->b; } } Class Second{ function test(){ $a=new First; //create object $a that is a First Class.
use
is not a function, it's part of the Closure syntax. It simply makes the specified variables of the outer scope available inside the closure.
$foo = 42; $bar = function () { // can't access $foo in here echo $foo; // undefined variable }; $baz = function () use ($foo) { // $foo is made available in here by use() echo $foo; // 42 }
For example:
$array = array('foo', 'bar', 'baz'); $prefix = uniqid(); $array = array_map(function ($elem) use ($prefix) { return $prefix . $elem; }, $array); // $array = array('4b3403665fea6foo', '4b3403665fea6bar', '4b3403665fea6baz');
It is telling the anonymous function to make $connections
(a parent variable) available in its scope.
Without it, $connections
wouldn't be defined inside the function.
Documentation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With