저는 학교 프로젝트를하고 있으며 처음으로 laravel 프레임 워크를 사용하고 있습니다. 나는 작은 문제가있어서 며칠 동안 붙어서 여러 가지 방법을 시도했다. 아무 것도 효과가 없었다.PHP - 클래스 내부의 전역 변수 - 내부 함수 내에서 액세스 할 수 있습니다.
나는 여러 인수를 취한 후 db를 통해 while 루프에서 '전역'배열 안에 모든 결과를 추가하는 시간 함수를 만든 다음 다른 함수가 전역 배열을 테스트하고 내부 값을 확인합니다.
난 데 문제는 내가 제대로 전역 배열에 액세스하는 기능을 얻을 수 있다는 것입니다:
나는 온라인으로 다른 많은 아이디어를 시도했지만 수를, t가 클래스의 내부 기능을 얻을 전역 배열에 액세스 -
누구든지 간단한 방법을 알고 있습니까? 감사합니다
은 (맨 상기 - 클래스 전에, 또한 클래스 내부 상단에) 시도
$Global['ScheduleTest'] = array();
global $ScheduleCheck = array();
(inside class) private $ScheduleCheck = array();
전체 코드 :::::::
<?php
global $ScheduleCheck = array() ;
class CourseRegistrationController extends BaseController {
public function __construct() {
$this->beforeFilter('csrf', array('on'=>'post'));
}
.....
// Function to test time overlaps
function testTimeOverlap($course ,$regday, $start_time,$end_time)
{
$start_time1 = (substr($start_time, 0, 5)) ;
$end_time1 = (substr($end_time, 0, 5)) ;
$ScheduleArr = makeSchedule();
$reg_days = explode(",",$regday);
foreach ($reg_days as $rday)
{
foreach ($ScheduleArr as $schedule)
{
if((strtolower($rday))==(strtolower($schedule['day'])))
{
$start_time2 = (substr($schedule['stime'], 0, 5)) ;
$end_time2 = (substr($schedule['etime'], 0, 5)) ;
if(testTime($start_time1,$end_time1,$start_time2,$end_time2))
{
array_push($ScheduleCheck, array("course"=>$course,"value"=>"true","day"=>$rday));
}
else
{
array_push($ScheduleCheck, array("course"=>$course,"value"=>"false","day"=>$rday));
}
}
else
{
array_push($ScheduleCheck, array("course"=>$course,"value"=>"true","day"=>$rday));
}
}
}
}
// Another function to go through the global array
function finalTimeTest()
{
testNewTime((strtolower(Input::get('course_id'))),(strtolower(Input::get('lecture_id'))),(strtolower(Input::get('tutorial_id'))),(strtolower(Input::get('lab_id'))));
foreach($ScheduleCheck as $ckTime)
{
if($ckTime['value']=="true")
{
return true;
}
else
{
return ($ckTime['course']." ");
}
}
}
?>
:
그런 다음 컨트롤러에서
$scheduleCheck
속성을 가져올 수 : 당신은 ** 글로벌 ** 키워드를 가져 와서 OOP의 개념을 깨고 있습니다. –상위 변수에 설정된 개인 변수와 같은 다른 방법을 시도했습니다 ... 작동하지 않습니다. – Jimmy
** 전역 변수를 사용하지 말고 대신 멤버를 public으로 만들어 클래스 외부에서 액세스 할 수 있도록합니다. –