php变量访问权限问题?

WBOY
풀어 주다: 2016-06-06 20:35:12
원래의
1441명이 탐색했습니다.

方法代码:

<code>function deleteSegment($vsuuid) {
    $num = db("test")->exec("DELETE FROM t_segment_index WHERE vs_uuid='$vsuuid'");
    if($num == 1) {
        $del = db("test")->exec("DELETE FROM t_video_segment WHERE vs_uuid='$vsuuid'");
        if($del == 1){
            $vsu = $vsuuid;
            $videoMsg = db("test")->getQuery("SELECT * FROM `t_video` where v_segments_list like '%$vsuuid%' limit 1");
            if(empty($videoMsg))
                return $del;
            $segments = $videoMsg[0]["v_segments_list"];
            $v_uuid = $videoMsg[0]["v_uuid"];
            $oldSegmentArray = explode("\n", $segments);
            $newSegmentArray = array_filter($oldSegmentArray, function($s){
                if($s === $vsuuid)
                    return false;
                else
                    return true;
            });
            $newSegments = implode("\n", array_values($newSegmentArray));
            $updateV = db("test")->exec("UPDATE t_video SET v_segments_list = '$newSegments' WHERE v_uuid='$v_uuid'");
            return 1;
        } else
            return 0;
    } else
        return 0;
}
</code>
로그인 후 복사
로그인 후 복사

代码执行到if($s === $vsuuid)的时候报错如下:
Notice: Undefined variable: vsuuid in /Applications/XAMPP/xamppfiles/htdocs/waaa-web/runtime/service_Admin.php on line 1526


请问是什么原因导致的?该怎么解决呢?

回复内容:

方法代码:

<code>function deleteSegment($vsuuid) {
    $num = db("test")->exec("DELETE FROM t_segment_index WHERE vs_uuid='$vsuuid'");
    if($num == 1) {
        $del = db("test")->exec("DELETE FROM t_video_segment WHERE vs_uuid='$vsuuid'");
        if($del == 1){
            $vsu = $vsuuid;
            $videoMsg = db("test")->getQuery("SELECT * FROM `t_video` where v_segments_list like '%$vsuuid%' limit 1");
            if(empty($videoMsg))
                return $del;
            $segments = $videoMsg[0]["v_segments_list"];
            $v_uuid = $videoMsg[0]["v_uuid"];
            $oldSegmentArray = explode("\n", $segments);
            $newSegmentArray = array_filter($oldSegmentArray, function($s){
                if($s === $vsuuid)
                    return false;
                else
                    return true;
            });
            $newSegments = implode("\n", array_values($newSegmentArray));
            $updateV = db("test")->exec("UPDATE t_video SET v_segments_list = '$newSegments' WHERE v_uuid='$v_uuid'");
            return 1;
        } else
            return 0;
    } else
        return 0;
}
</code>
로그인 후 복사
로그인 후 복사

代码执行到if($s === $vsuuid)的时候报错如下:
Notice: Undefined variable: vsuuid in /Applications/XAMPP/xamppfiles/htdocs/waaa-web/runtime/service_Admin.php on line 1526


请问是什么原因导致的?该怎么解决呢?

<code>array_filter($oldSegmentArray, function($s) use($vsuuid) {
    return $s !== $vsuuid;
});
</code>
로그인 후 복사

顺便帮你改下下函数...

<code>function deleteSegment($vsuuid) {
    $res = db("test")->exec("DELETE FROM t_segment_index, t_video_segment WHERE vs_uuid='$vsuuid'");
    if( !$res ) return 0;

    $videoMsg = db("test")->getQuery("SELECT * FROM `t_video` where v_segments_list like '%$vsuuid%' limit 1");
    if( empty($videoMsg) ) return 0;

    $segments = $videoMsg[0]["v_segments_list"];
    $v_uuid = $videoMsg[0]["v_uuid"];
    $oldSegmentArray = explode("\n", $segments);
    $newSegmentArray = array_filter($oldSegmentArray, function($s) use($vsuuid) { return $s !== $vsuuid; });
    $newSegments = implode("\n", array_values($newSegmentArray));

    return $updateV = db("test")->exec("UPDATE t_video SET v_segments_list = '$newSegments' WHERE v_uuid='$v_uuid'");
}
</code>
로그인 후 복사

闭包(Closure) 中使用外部函数,function($param) use($otherParam){}

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿