所以最近我学会了回调。作为参数传递给另一个函数的代码片段(通常是一个函数),在某些事件发生后执行。
我找到了这个例子:
这是一个上传文件并将其保存在服务器上的功能。
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();
这比使用回调更好还是更差?