매개 변수를 취하는 두 가지 기능이 있습니다.호출 할 때만 읽기 기능 - PHP
내 스크립트의 작동 방식은 일부 데이터를 문자열로 검색한다는 것입니다. 이 문자열은 두 가지 형식 일 수 있습니다.이 형식은 나에게 알려지지 않았으므로 미리 얻을 수 없습니다.
그래서 각 형식 유형에 대해 하나씩 두 가지 기능이 있습니다.
함수 1이 먼저 호출되며 문자열이 매개 변수로 전달됩니다. 그런 다음이 함수 내의 변수가 할당되었는지 확인합니다. 변수가 지정되면 문자열 형식이 인식되었음을 의미합니다. 변수가 할당되지 않은 경우 동일한 매개 변수로 함수 2가 호출됩니다. 이것은 효과가있다.
문제점은 function1이 작동하는 경우 스크립트를 실행할 때 함수 2에 대한 정의되지 않은 변수 오류가 발생한다는 것입니다.이 호출이 아직 호출되지 않았으므로 이해가 안됩니다. 처리되지 않았거나 보지 못했습니다.
함수를 호출 할 때만 함수를 사용할 수 있습니까?
recurrence_info_day($eventtype);
$recurrence_type = "daily";
if (!$eventstart){
recurrence_info_weekly($eventtype);
$recurrence_type = "weekly";
}
function recurrence_info_day($eventtype){
$s = $eventtype;
preg_match('/^DTSTART;VALUE=DATE:(\d+)\s+DTEND;VALUE=DATE:(\d+)\s+RRULE:FREQ=(\w+);INTERVAL=(\d+);UNTIL=(\d+)/', $s, $recinfod);
$eventstart = $recinfod[1];
$eventend = $recinfod[2];
$eventfrequency = $recinfod[3];
$eventinterval = $recinfod[4];
$eventuntil = $recinfod[5];
$formstartdate = substr($eventstart,4,2)."/".substr($eventstart, 6)."/".substr($eventstart,0,4);
$formenddate = substr($eventuntil,4,2)."/".substr($eventuntil, 6)."/".substr($eventuntil,0,4);
}
function recurrence_info_weekly($eventtype){
$s = $eventtype;
preg_match('/^DTSTART;VALUE=DATE:(\d+)\s+DTEND;VALUE=DATE:(\d+)\sRRULE:FREQ=(\w+);BYDAY=(\d+);UNTIL=(\d+)/', $s, $recinfow);
$eventstart = $recinfow[1];
$eventend = $recinfow[2];
$eventfrequency = $recinfow[3];
$eventdays = $recinfow[4];
$eventuntil = $recinfow[5];
$formstartdate = substr($eventstart,4,2)."/".substr($eventstart, 6)."/".substr($eventstart,0,4);
$formenddate = substr($eventuntil,4,2)."/".substr($eventuntil, 6)."/".substr($eventuntil,0,4);
}
정확한 오류를 붙여주십시오. 어떤 것을 기반으로 여기에 정의되지 않은 인덱스가 함수 2 안에 있지 않은 if (! $ eventstart) {'에서 발생한다고 생각할 것입니다. – Julien
또한 'preg_match'는 값을 반환합니다. 그것이 성공했다고 가정하기 전에 그것을 확인하십시오. – hakre
'$ eventtype'에 대한 예제 문자열을 제공하십시오. 적어도 두 개는 첫 번째 (하루)에 한 개, 두 번째 유형 (한주에 한 개)에 하나씩 일치합니다. – hakre