首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • php 如何执行字符串中的函数 [已结贴,结贴人:hyde9573]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hyde9573
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-07-21 18:23:51 楼主
    我在手册中看到如下解释array_diff_uassoc函数

    <?php
    function key_compare_func($a, $b)
    {
    if ($a === $b) {
    return 0;
    }
    return ($a > $b)? 1:-1;
    }

    $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
    $array2 = array("a" => "green", "yellow", "red");
    $result = array_diff_uassoc($array1, $array2, "key_compare_func");
    print_r($result);
    ?>

    我要问的并不是array_diff_uassoc,我想知道的是,这个函数的第3个参数是个字符串,他如何做到1个字符串能执行它的同名函数,不知道我问明白没,请高手解答,谢谢!!
    50  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Aylazhang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-21 18:31:371楼 得分:0
    $xx ='echo';
    eval("$xx('aa');");

    应该类似。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lgzxz999
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-22 08:50:492楼 得分:0
    规定吧..倒没想过怎么做到,应该是由这个字符串去找这个函数,找到会怎么执行就是内部的事了,我们知道怎么用就可以了~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • beiliwenxiao
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-22 09:42:273楼 得分:50
    function key_compare_func($a, $b)
    {
    if ($a === $b) {
    return 0;
    }
    return ($a > $b)? 1:-1;
    }

    $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
    $array2 = array("a" => "green", "yellow", "red");

    $fun_name = "key_compare_func";//定义你的函数名。

    if(function_exists($fun_name))[color=#0000FF]//有函数名存在则执行函数。
    {
      $fun_name($a, $b);
    } [/color]

    $result = array_diff_uassoc($array1, $array2, "key_compare_func");
    print_r($result);


    不知道理解得对不对。1个字符串执行它的同名函数用function_exists()来判断和执行。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • beiliwenxiao
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-07-22 09:44:064楼 得分:0
    $fun_name = "key_compare_func";//定义你的函数名。

    if(function_exists($fun_name)//有函数名存在则执行函数。
    {
      $fun_name($a, $b);
    }
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fxs_2008
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 3

      2

    发表于:2008-07-22 10:04:415楼 得分:0
    array_diff_uassoc -- 用用户提供的回调函数做索引检查来计算数组的差集
    说明
    array array_diff_uassoc ( array array1, array array2 [, array ..., callback key_compare_func] )


    key_compare_func

    没有指定数据类型,则意指函数名
    修改 删除 举报 引用 回复