정의되지 않은 오프셋을 피하기 위해 PHP에서 배열의 기본값을 어떻게 정의합니까?
isset을 사용하여이 코드를 사용하여 비어 있는지 확인합니다. if(!isset($this->objCodes[0]->SignupCode))$this->objCodes[0]->"NULL";
그러나 작동하지 않습니다. 도움?
정의되지 않은 오프셋을 피하기 위해 PHP에서 배열의 기본값을 어떻게 정의합니까?
isset을 사용하여이 코드를 사용하여 비어 있는지 확인합니다. if(!isset($this->objCodes[0]->SignupCode))$this->objCodes[0]->"NULL";
그러나 작동하지 않습니다. 도움?
값이 쓸모없는 값인지 확인하려면 비어있는 것을 사용하는 것이 좋습니다. 당신의 SignupCode이 (""
), 0, 또는 another empty value 빈 문자열 수 없을 경우,이 시도 :
if(empty($this->objCodes[0]->SignupCode))
{
$this->objCodex[0] = null;
}
나는 데이터베이스에서 수입하고있는 경우 때문에 일반적으로 empty()
를 사용하는 이유는, 내가 찾고 있어요 데이터를 isset()
이 데이터베이스에서 설정되었으므로 항상 true를 반환합니다. 변수에 값의 어떤 것도 실제로 없다는 것을 의미하기 때문에 null이거나 빈 문자열이면 더 관심이 있습니다.
이 같은 개체에 값을로드하는 경우 : 값이 기술적으로 항상이기 때문에
if(isset($myObjs[0]->SignupCode))
: 다음과 같이 테스트 할 때
$result = mysql_query("Some Query");
while($temp = mysql_fetch_assoc($result)
{
$myObj = new stdClass;
$myObj->SignupCode = $temp['SignupCode'];
$myObjs[] = $myObj;
}
당신은 항상 isset()
함수에 true
을받을 것이다 '설정'될 것입니다
실제로 설정되지 않았는지 확인하려면 다음을 시도하십시오 :
if(!isset($this->objCodes[0]->SignupCode))
{
$this->objCodex[0] = null;
}
잘 정의 된 것은 $this->objCodes
입니까? 그렇다면 배열입니까? sring을 처리 할 수 있기 때문에 문자열로도 작동합니다. 단일 문자 배열. 또한 성명서를 가지고 실제로 SignupCode
이 객체에 설정되어 있는지 확인합니다 ... $this->objCodes[0]
이 설정되어 있지 않습니다.
내가받는 오류가 잘못된 속성 접근자인 것 같습니다 (->"NULL"
). 배열 인덱스가 존재하는 경우
는 isset 기능은 사용자가 objCodes 검사하는 [0] 인덱스로서 확인하는데 사용되어야한다 개체 유형을 모르고
if(isset($this->objCodes[0])) {
는 현재 objCodes 배열이
if(!isset($this->objCodes[0])) {
$this->objCodes[0] = new ObjectCode();
}
경우 : 그게 내가 기본 설정에 대한 답변 특정 할 수 없다하지만 예를 들어 클래스 ObjectCode
를 사용하는 경우이 같은 배열의 요소에 대해 디폴트 값을 설정할 수 있습니다 SignupCode
의 속성이 있습니다 나는 무엇에 대해 더 많이 알고 있었다. 그 코드 블록을 사용하여 더 많은 것을 설명 할 수 있습니다.
UPDATE : 요청 된 인덱스가 발견되지 않을 때 당신은 정말 당신의 수집은 항상 기본을 반환 할 offsetGet method을 구현 한 후 ArrayAccess interface을 구현 컨테이너를 만들 수있는 값을 돌려 준 것을 확인하고 싶었다면 :
public class ObjectCodeContainer implements ArrayAccess {
private $collection;
public function __construct() {
$this->collection = array();
}
public function offsetGet($offset) {
if(!isset($this->collection[$offset])) {
$this->collection[$offset] = new ObjectCode();
}
return $this->collection[$offset];
}
// implement the other abstract methods
}
$default = array('color' => 'blue', 'model' => 'Verizon', 'sex' => 'Female');
$new = array('color' => 'red', 'sex' => 'Male');
$array = array_merge($default, $new);
var_dump($array);
// array('color' => 'red', 'model' => 'Verizon', 'sex' => 'Male')
WTF? .................. –
@ Chacha102 -'정의되지 않은 오프셋을 피하기 위해 PHP에서 배열의 기본값을 어떻게 정의합니까? ' –
맞아요. 특정 알려진 키에 대한 기본값을 원할 경우 작동합니다. –
어떤 오류 메시지가 표시됩니까? – Gumbo
null 값 대신 문자열이되기를 원하지 않는 한'NULL'을 인용하지 마십시오. – dnagirl