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';

$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 に答える