所以我有这个功能,我想知道如何随机调用这两个函数。我的意思是,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)]);
?>
上面的代码不起作用。想知道是否有人可以提供帮助吗?
答案 0 :(得分:5)
您可以这样称呼它:
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)]);
答案 1 :(得分:2)
使用函数名称删除数组中的括号,例如:$a=array("FUNCTION-ONE","FUNCTION-TWO");
并在通话时添加它们: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>";
?>
答案 2 :(得分:2)
你可以在这里使用Switch case ...
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;
}
}
答案 3 :(得分:2)
试试这个:
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);