对php中的回调感到困惑

时间:2015-10-01 16:31:40

标签: php callback

所以最近我学会了回调。作为参数传递给另一个函数的代码片段(通常是一个函数),在某些事件发生后执行。

我找到了这个例子:

这是一个上传文件并将其保存在服务器上的功能。

    class FileUpload
    {
        function save($callback)
        {
            $path = '/path/image';

            echo "Data saved<br />";
            //call the callback
            $callback($path);
        }
    }

在这里我们创建该类的实例并调用save方法:

class Profile
{
    function update_profile()
    {
        $f = new FileUpload('photo');

        // Note, this syntax is very similar to javascript callback syntax
    $f->save(function($path){
        echo "Image resized at path $path <br />";    
    });

    }
}

$p = new Profile;
$p->update_profile();

我的问题是,为什么我们不能只创建一个简单的函数并在保存数据时调用它。像这样:

function printResult($path)
{
   echo "Image resized at path $path <br />";
}

class FileUpload
    {
        function save()
        {
            $path = '/path/image';

            echo "Data saved<br />";
            //call our simple function
            printResult($path);
        }
    }

class Profile
    {
        function update_profile()
        {
            $f = new FileUpload('photo');
            $f->save();
        }
    }

    $p = new Profile;
    $p->update_profile();

这比使用回调更好还是更差?

0 个答案:

没有答案