이상한 문제가 있습니다. 이것은, 어쨌든 다른 코드를 보여이 코드를 보면 클래스의 단지 생성자 방법, 가치가 없다 : 지금부터
Class xy {
public $x = 10;
public $y = 10;
public function __construct($x = NULL, $y = NULL) {
if(isset($x) || isset($y)){
$this->x = $x; // assign center coords
$this->y = $y; // assign center coords
}
$this->area = $this->area();
echo $this->x . " " . $this->y . " " . $this->area;
}
}
,이 코드는 $ this-> x와 $ this-> Y 에코해야한다고 생각 if(isset($x) || isset($y)){
없이,이 코드로 객체 작성시 전달되지 않은 경우 : 하지만 그렇지 않습니다. 이 줄이 다음과 같이 보이는 경우에만 작동합니다 $newObj = new xy(10,10)
;
은 내가 년 동안 PHP를 사용을 haven`t,하지만 난 그게 $ NEWOBJ 같은 외모 = 새로운 XY()해야한다고 생각 도움과 설명 :
'isset()'을'! is_null()'으로 바꾸면 도움이 될까요? – Passerby
'$ x === NULL || $ this-> x = $ x;'두 번째 인수와 동일합니다. 기본값이 아닌 경우에만 설정하십시오. 당신은 논증마다 그렇게해야합니다. – hakre
@Passerby,'isset'은 논리적으로'! is_null'과 같습니다 (반환 값은 모든 입력에 대해 동일합니다). – goat