PHP 如何在方法体外部获取内部变量?
本文介绍了PHP 如何在方法体外部获取内部变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
1.源码:
public function importexcel(Request $request){
$file = Input::file('myfile');
if($file->isValid()){
$tmpName = $file->getClientOriginalName();
$path = $file->move(storage_path().'/uploads',$tmpName);
$subtmpName = substr($tmpName,0,-5);
$filePath = "storage/uploads/".iconv('UTF-8', 'UTF-8', $subtmpName).'.xlsx';
Excel::load($filePath, function($reader) {
$reader->noHeading();
$data = $reader->toArray();
for($i = 1;$i<count($data);$i++){
$midArr = $data[$i];
//获取一个人员的Player_id字段
if($i == 1){
$first_player_id = $data[1][0];
}
for($j = 0;$j<count($midArr);$j++){
$player_id = (string)$midArr[0];
$node = (string)$midArr[1];
$childnode = (string)$midArr[2];
$time = (string)$midArr[3];
$uuid = (string)UUID::generate();
//将Excel表中的数据导入score表中
***$result = DB::insert('insert into score (id,player_id,node,childnode,time) values (?,?,?,?,?)',[$uuid,$player_id,$node,$childnode,$time]);***
}
}
});
}else{
//Excel数据不合法的情况
}
dd($result);
}
2.问题:在函数体内变量$result(斜体)如何在方法体外部被调用即代码dd($result)处?
解决:参考:
<?php
class demo{
public $var1 = null;
public function func1(){
$this->var1 = 'from func1';
}
public function func2(){
echo $this->var1;
}
}
$demo = new demo();
$demo->func1();
$demo->func2();
在类定义变量,可以解决。有一点不好就是能让类内的所有方法都能访问到。我是希望变量只存在方法importexcel()体内,在 Excel::load($filePath, function($reader) {}变量$return,可以在外Excel::load()被访问到。
解决方案
$result = Excel::load($filePath, function($reader) {
$result = array();
.....
$result[] = DB::insert('insert into score (id,player_id,node,childnode,time) values (?,?,?,?,?)',[$uuid,$player_id,$node,$childnode,$time]);
}
}
return $result;
这篇关于PHP 如何在方法体外部获取内部变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文