不确定我是否正确地表达了这个问题,但让我解释一下。在程序性程序中,例如:
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'];
}
}
在上面,getUsername函数调用了getUserId函数。由于该函数被调用,它必须高于调用它的函数,否则它将无效。
我想知道的是,在面向对象编程中,类中函数(方法)的顺序是否重要?即使在脚本中进一步定义了被调用的方法,我是否可以在另一个方法中调用方法?
答案 0 :(得分:4)
功能的顺序无关紧要,原因如下:
第三种情况的一个例子是:
$object = new MyObject();
$method = 'my_method';
echo $object->${my_method}();
这将调用对象my_method
上的方法$object
(如果存在),该对象是MyObject
类的实例。 (如果该方法不存在,则会抛出运行时异常。)
答案 1 :(得分:3)
从技术角度来看 - 它根本不重要。重要的是可读性和易于修改,因此您需要决定哪种方法最适合您。您可能希望按时间顺序,按字母顺序或有时按目的订购功能。恕我直言,最好的方法是按字母顺序排序 - 这样可以更容易地在代码导航工具中搜索它们。
答案 2 :(得分:1)
取决于语言。
例如,在JavaScript中,只要在定义了getUserId()之后调用它,就可以先定义getUsername()函数。
在Java中作为另一个例子,它通常无关紧要(静态初始化块除外)
答案 3 :(得分:0)
您可以按任何顺序逻辑调用它们。有些语言强制执行可能/可能不同的声明顺序。但是从根本上说,如果你使用的模块/类/代码块声明了许多函数或方法,那么你可以完全无情地调用它们。
答案 4 :(得分:0)
即使在程序样式函数中,也不需要按顺序声明。它们只需要在被调用时存在。这将完美地运行,因为实际上都没有调用任何函数:
function foo() {
bar();
}
function bar() {
}
对于OOP也是如此,调用它时必须存在一个函数。声明它们的顺序无关紧要。