Как вызвать случайную функцию в PHP

Поэтому у меня есть эти функции, мне было интересно, как я могу вызвать две функции случайным образом. Я имею в виду, что php-код будет случайно выбирать из двух? Как мне это сделать?

Примеры функций

function one() { echo ' <div id="two-post"> <a href="<?php the_permalink(); ?>" alt="<?php the_title(); ?>" title="<?php the_title(); ?>"> <?php the_post_thumbnail('dos'); ?> <div class="entry-meta"> <h1><?php the_title(); ?></h1> <p>By <?php the_author(); ?></p> </div> <div class="overlay2"></div> </a> </div> '; } function two() { echo '<div class="two">' . wp_trim_words( get_the_content(), 50, '' ) . '</div>'; } function three() { // function names without "-" echo '<div class="third">' . the_author() .'</div>'; } 

Код для выбора двух функций случайным образом

 <?php $functions = array('one', 'two', 'three'); // remove the open and close parenthesis () in the strings call_user_func($functions[array_rand($functions)]); ?> 

Приведенный выше код не работает. Интересно, может ли кто-нибудь помочь?

Related of "Как вызвать случайную функцию в PHP"

Вы можете назвать это примерно так:

 function one() { echo ' <div id="two-post"> <a href="' . the_permalink() .'" alt="' . the_title() .'" title="' . the_title() .'"> ' . the_post_thumbnail('dos') . ' <div class="entry-meta"> <h1>' . the_title() . '</h1> <p>By ' . the_author() . '</p> </div> <div class="overlay2"></div> </a> </div> '; } function two() { echo wp_trim_words( get_the_content(), 50, '' ); } function three() { // function names without "-" echo '<div>' . the_author() .'</div>'; } $functions = array('one', 'two', 'three'); // remove the open and close parenthesis () in the strings $functions[array_rand($functions)](); // call it! // or call_user_func($functions[array_rand($functions)]); 

Вы можете использовать корпус Switch здесь …

 function one(){ //some code; } function two(){ //some code; } function random_caller(){ int x = rand(0,1); switch(x){ case 1: one(); break; case 2: two(); break; default: echo "could not run any function"; break; } } 

Удалите круглые скобки в массиве с именами функций, например: $a=array("FUNCTION-ONE","FUNCTION-TWO"); И добавьте их по вызову: echo $a[$random_keys[0]]() . "<br>"; echo $a[$random_keys[0]]() . "<br>";

Кроме того, PHP будет немного раздражаться именами функций, содержащими символ - (такие функции имен таких как), поэтому попробуйте переименовать функции в нечто вроде functionOne (что также будет соответствовать стандарту php).

 <?php $functions = array("functionOne","functionTwo"); $function = array_rand($functions); // no second param uses default param which is 1, and will only return one entry. echo $functions[$function]() ."<br>"; ?> 

Попробуй это:

 function one() { echo 'ONE'; } function two() { echo 'TWO'; } function three() { echo 'THREE'; } $functions = array('one', 'two', 'three'); call_user_func($functions[array_rand($functions)]); 

Или в функции:

 function callRandomFunction($functions) { call_user_func($functions[array_rand($functions)]); } 

Вызывается как:

 callRandomFunction($functions);