Versio

De scope van 'use'

Let op: keyword 'use' importeert alleen uit de scope waar je je closure definieert. Wil je variabelen importeren uit bijvoorbeeld de global scope, dan zal je het keyword 'global' moeten gebruiken. Tenzij je je closure ook binnen diezelfde global scope definieert.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$global_a
= "Ik ben global_a\n";

function
function_a() {

    $scope_b = "Ik ben scope_b\n";

    $closure_a = function() use ($global_a, $scope_b) {
        echo $global_a;
        
        echo $scope_b;
        
        echo "Ik ben closure_a\n";
    };

    
    $closure_a();
}


function_a();

/* resultaat:
Ik ben scope_b
Ik ben closure_a
*/

?>

Merk op dat $global_a niet beschikbaar was binnen $closure_a, omdat $global_a niet bestaat binnen de scope van function_a.

« Lees de omschrijving en reacties

Inhoudsopgave
  1. Je eerste closure
  2. Variabelen importeren in een closure
  3. De scope van 'use'
  4. Closure en objecten
  5. WTF?! - de opsomming
  6. Disclaimer
  • Gesponsorde koppelingen