0

如何调用在方法中保存对象的变量?任何建议和帮助将不胜感激。

这是进一步解释的示例,

这是我的名为 shirt.php 的类脚本

<?php 
    class shirt {
        //some function and code here
        public getSize() {
            return $this->size;
        }
    }
?>

这是我调用名为 shirt.func.php 的 shirt.php 的脚本

<?php
    require_once 'shirt.php';

    $shirt = new Shirt();

    function getShirtSize() {
        return $shirt->getSize();
    }
?>

问题是我不能在函数中使用变量$shirt但是如果我在函数之外使用它,它可以完美地工作。我有一种方法来解决它,即创建一个返回该对象启动的方法。

这是我的方式:

<?php
    require_once 'foo.php';

    function init() {
        return $shirt = new Shirt();
    }

    function getShirtSize() {
        return init()->getSize();
    }
?>

还有其他有效的方法吗?感谢任何专业人士的建议。

4

2 回答 2

0

方法和函数有自己的作用域。他们只知道对象和标量,你明确地提供给他们。因此,您必须将对象传递给函数。

require_once 'shirt.php';

$myCurrentShirt = new Shirt();

function getShirtSize($shirt) {
    return $shirt->getSize();
}

会做的。有关函数使用的更多信息,请参阅手册

于 2013-04-10T16:21:46.503 回答
0
require_once 'shirt.php';

$shirt = new shirt();

function getShirtSize($_shirt) {
    return $_shirt->getSize();
}

getShirtSize($shirt) // pass the $shirt to the function

编辑:

或(不是那么)伟大的全球:

require_once 'shirt.php';

$shirt = new shirt();

function getShirtSize() {
    global $shirt;
    return $shirt->getSize();
}

getShirtSize();
于 2013-04-10T15:43:44.530 回答