Forum und email

העברה על ידי מכוון

אתה יכול להעביר משתנה לפונקציה על ידי מכוון על מנת שהוא ישתנה בתוך הפונקציה. התחביר הוא כך:

<?php
function foo (&$var)
{
    
$var++;
}

$a=5;
foo ($a);
// $a is 6 here
?>
שים לב שאין סימון של מכוון בקריאה לפונקציה אלא רק בהגדרת הפונקציה. הגדרת הפונקציה היא מקום מספיק על מנת להעביר את המשתנה על ידי מכוון.

הדברים הבאים יכולים להיות מועברים על ידי מכוון:

  • משתנים, לדוגמא foo($a)
  • ההצהרה new, לדוגמא foo(new foobar())
  • מכוון המוחזר מפונקציה, לדוגמא:

    <?php
    function &bar()
    {
        
    $a 5;
        return 
    $a;
    }
    foo(bar());
    ?>
    ראה גם הסברים אודות החזרה על פי מכוון.

כל ביטוי אחר לא יכול להיות מוחזר על ידי מכוון מכיוון שסוג הביטוי לא ידוע. לדוגמא, הקוד הבא איננו חוקי:

<?php
function bar() // Note the missing &
{
    
$a 5;
    return 
$a;
}
foo(bar());

foo($a 5// Expression, not variable
foo(5// Constant, not variable
?>
דרישות אלו נכונות החל מ PHP 4.0.4 ואילך.