doushun1904 2011-08-16 05:04
浏览 50
已采纳

在面向对象的PHP中使用它之前是否需要定义函数?

Not sure if I phrased the question correctly but let me explain. In a procedural program, for example:

function getUserId()
{
   // some stuff
   return $someUserId;
}

function getUsername()
{
  $id = getUserId();
  $query = mysql_query(" SELECT * FROM users WHERE id = '$id' ");
  while ($row = mysql_fetch_assoc($query))
  {
     return $row['username'];
  }
}

In the above, the getUsername function called the getUserId function. Since that function was called it must be above the one that called it, otherwise it won't work.

What I would like to know is, in object oriented programming, does the order of functions (methods) in a class matter? Can I call a method within another method even if the method being called is defined further down in the script?

  • 写回答

5条回答 默认 最新

  • dongwei8729 2011-08-16 05:09
    关注

    Even in procedural style functions don't need to be declared in order. They only need to exist at the time they are called. This will work perfectly fine, because neither function is actually ever called:

    function foo() {
        bar();
    }
    
    function bar() {
    }
    

    The same goes for OOP, a function must exist when it is called. In which order they are declared is irrelevant.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题