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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题