2011-04-08 6 views
0

이 코드를 제대로 작성했는지 궁금해서이 코드가 작동한다고해도 이러한 경고가 발생합니다. 봐.PHP 경고, 이것이 정상입니까?

$image_size = getimagesize($data[$module['_attr']['id']]); <-- works but gives warning (Filename cannot be empty) 

echo call_user_func($module['_attr']['type'],$module); <-- works but gives warning (First argument is expected to be a valid callback) 

따라서 전달 된 변수 나 배열 요소가 마음에 들지 않습니다. 아니면 내가 잘못하고있는거야?

감사합니다.

+1

'$ data [ '_ attr'] [ 'id']'가 비어있을 가능성이 높습니다. 테스트 결과를 출력 했습니까? –

+1

'getimagesize'가 "작동한다"고 말할 때, 이것으로 무엇을 의미합니까? 어떻게 알 수 있습니까? 경고처럼 비어있는 것 같습니다. –

+0

두 함수는 $ image_size에 크기 배열을 가져오고 echo 함수는 데이터를 가져 오는 것을 볼 수 있기 때문에 작동합니다. 110 % 확신 할 수 없습니다. –

답변

2

$data[$module['_attr']['id']]이 비어 있습니다. (모든 파일 경로가 포함되어 있지 않음) - 첫 번째 경고를 설명합니다.

그리고 $module['_attr']['type']에는 유효한 함수 이름이 없을 것입니다. 이는 두 번째 경고를 설명합니다.

var_dump($module, $data); 


참고 : 정말에 $module$data 무엇을 알고이 같은 것을 사용


시도

  • 그 경고 코드를 표시를하지 않습니다 : 그것을 당신이 원하는 것을하지 않습니다 - probabaly는 경고를 고려해 많이하지 않습니다.
  • 경고는 치명적이지 않습니다. 오류 : 스크립트 실행이 계속됩니다. 문제가 있어도 나중에 문제가 발생할 수 있습니다.
+0

+1. Dang, 너 빨리! ;-) – stealthyninja

+0

call_user_func는 함수 이름을 문자열로 취하며 정확히 배열 요소에서 전달한 것입니다. –

+0

아무도 모를 거 같아요? –

0

스크립트가 제대로 작동합니까?

첫 번째 오류는 해당 기능에 이미지 경로를 전달하지 않았기 때문이라고 생각합니다.

두 번째 인수는 첫 번째 인수가 반드시 함수 여야하기 때문입니다. $ module [ '_ attr'] [ 'type'] 기능이 있습니까?

해당 변수를 디버깅 하시겠습니까?

+0

예 모두 작동합니다 ... 두 번째로 call_user_function ('name', $ variable)을 말하는 대신 배열에 저장된 함수 이름을 전달합니다. $ module [ '_ attr'] [ 'type'] –

+0

같은 스크립트 범위에있는 함수입니까? –

+0

당신이 뭘 말하고 있는지 잘 모르겠지만 경고가 있더라도 모든 것이 작동한다는 것에주의하십시오. –