doukun8944 2016-03-16 09:50
浏览 10
已采纳

如何创建简单的功能?

Why is this working...

$animal='';
    $animal .= "You edited this animal: ";
    if ($data['horse'] != $horse){
        $animal .= 'Name from "'.$data['horse'].'" into "'.$horse.'"';
    }   
    $sql = "INSERT INTO animal (animal,id) values(?,?)";
    $q = $pdo->prepare($sql);
    $q->execute(array($animal,$id));

(Result: "You edited this animal: Mustang into Marwari")

...but this...

$animal='';
$animal .= "You edited this animal: ";  
function animal_func($label, $orig, $edit) {
    if ($orig != $edit){
        $animal .= $label.' from "'.$orig.'" into "'.$edit.'"';
    }
}
animal_func("Name",$data['horse'],$horse);

$sql = "INSERT INTO animal (animal,id) values(?,?)";
$q = $pdo->prepare($sql);
$q->execute(array($animal,$id));

(Result: "You edited this animal: ")

... is not working

  • 写回答

3条回答 默认 最新

  • douwei7203 2016-03-16 09:57
    关注

    Because of the scope of the $animal variable. http://php.net/manual/en/language.variables.scope.php

    You need to pass an return the $animal var : /* if you need this only once, outside is better */ $animal .= "You edited this animal: ";

    function animal_func($label, $orig, $edit, $animal) { 
        if ($orig != $edit){
            $animal .= $label.' from "'.$orig.'" into "'.$edit.'"';
        return $animal;
        }
    }
    
    
    $animal = animal_func("Name",$data['horse'],$horse,$animal);
    

    You can also do that, perhaps more readable :

    function animal_func($label, $orig, $edit, $animal) {
        if ($orig != $edit) {
            $animal .= $label.' from "'.$orig.'" into "'.$edit.'"';
            return $animal;
        }
    }
    
    $animal = "You edited this animal: ";
    $animal = animal_func("Name",$data['horse'],$horse,$animal);
    

    After another read (this is better):

    function animal_func($label, $orig, $edit) {
        if ($orig != $edit) {
            return $label.' from "'.$orig.'" into "'.$edit.'"';
        }
    }
    
    $animal = "You edited this animal: ".animal_func("Name",$data['horse'],$horse);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题