在方法/函数中调用对象变量

时间:2013-04-10 15:39:11

标签: php object

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

以下是进一步解释的例子,

这是我的类脚本,名为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();
    }
?>

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

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

方法和功能有各自的范围。他们只知道对象和标量,你明确地提供它们。因此,您必须将对象传入函数。

require_once 'shirt.php';

$myCurrentShirt = new Shirt();

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

会做到的。有关函数用法的信息,请参阅manual