dougan1465 2019-07-26 02:51
浏览 65
已采纳

如何在php中创建对象后调用数组中的函数?

I've created a class Varsity and make an object of it. It's working very well when I call member function after creating object of this class. But it needs to write some extra code here.

Is it possible to call these function in an array like the last code bellow ?

    <?php
        class Varsity {
            public $miuCampus = array(
                'Manarat International University',
                'Ashulia',
                2
            );

            public function campusName() {
                echo "The university name is ".$this -> miuCampus[0];
            }

            public function campusAddress() {
                echo " situated in ".$this -> miuCampus[1];
            }

            public function campusNumber() {
                echo " and they have ".$this -> miuCampus[2];
            }
        }

        $campusData = new Varsity();
        $campusData -> campusName();
        $campusData -> campusAddress();
        $campusData -> campusNumber();
    ?>

This code is all right and working well. But this code is producing an error:

    <?php
        class Varsity {
            public $miuCampus = array(
                'Manarat International University',
                'Ashulia',
                2
            );

            public function campusName() {
                echo "The university name is ".$this -> miuCampus[0];
            }

            public function campusAddress() {
                echo " situated in ".$this -> miuCampus[1];
            }

            public function campusNumber() {
                echo " and they have ".$this -> miuCampus[2];
            }
        }

        $campusData = new Varsity();
        $campusData -> $campusInfo = array(
            'campusName()',
            'campusAddress()',
            'campusNumber()'
        );
    ?>

The first one is working well and last one is showing error. Is it possible to call function in an array like last code above?

  • 写回答

1条回答 默认 最新

  • douweibiao8471 2019-07-26 03:03
    关注

    Well you can use Variable functions

    $campusData = new Varsity();
    $campusInfo = array(
                      'campusName',
                      'campusAddress',
                      'campusNumber'
                  );
    
    for ($count = 0; $count < count($campusInfo); $count++) {
        $func_name = $campusInfo[$count];
        $campusData->$func_name();
    }
    

    See the Variable method example in the link above

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?