如果您不知道在該類中有多少種方法,但您知道每種方法的名稱的基礎。然後你就可以像這樣遍歷它們:
<?php
class Example {
public static function loop() {
self::introduction();
$name = "step_one";
$int = 2;
$formater = new NumberFormatter("en", NumberFormatter::SPELLOUT);
while (true) {
if (method_exists(get_class(), $name)) {
self::$name();
$number = $formater->format($int);
$name = "step_" . $number;
$int ++;
}
else {
break;
}
}
}
public static function introduction(){
?>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<?php
}
public static function step_one(){
?>
<p>1Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<?php
}
public static function step_two(){
?>
<p>2Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<?php
}
public static function step_three(){
?>
<p>3Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<?php
}
}
Example::loop();
?>
或者可以遍歷他們聲明的順序是這樣的:
<?php
class Example {
public function loop() {
$methods = get_class_methods(get_class());
foreach ($methods as $method) {
if ($method != "loop") {
$this->$method();
}
}
}
public function introduction(){
?>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<?php
}
public function step_one(){
?>
<p>1Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<?php
}
public function step_two(){
?>
<p>2Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<?php
}
public function step_three(){
?>
<p>3Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
<?php
}
}
$a = new Example();
$a->loop();
?>
可以使用get_class_methods從類中獲取方法名稱,但應該拋棄「order」的概念。您定義了這些方法,但是PHP允許將它們放入任何喜歡的順序。 – kainaw
除了將每個HTML片段存儲在HEREDOC數組值中,有沒有什麼方法可以對它們進行「排序」? – ibhhvc