클래스 접근 문제
224
작성한 질문수 64
안녕하세요! 학습을 하는도중에 질문 거리가 자꾸 생겨나네요
구글링을 하다가 혼자 힘으로는 벅차서.. 질문 좀 하겠습니다.
App\Config\Base Object
(
[baseUrl] => http://naver.com/
)
예를 들어서 위와 같이 저렇게 오브젝트가 있어요
(직접만든 클래스가 있는데 이걸 아래처럼...)
$appconfig = new App\Config\Base();
$test = new test($appconfig);
class test {
protected $config;
public function __constract($config = '') {
$this->config = $config;
$this->config->baseUrl << 이렇게 접근하려고 하니까 에러가 생겨요
}
}
Trying to get property 'baseUrl' of non-object in
잘못된 접근 프로퍼티? 라고 하는데 왜 이런 에러가 자꾸 뜰까요 ㅠㅠ
굳이 extend 할 필요 없이 저런식으로 하고 싶은데 그리고 생성자를 $this->config = new App\Config\Base()
이렇게 또 추가 한다고하면 데이터가 두개로 늘어나요
App\Config\Base Object
(
[baseUrl] => http://naver.com/
)
App\Config\Base Object
(
[baseUrl] => http://naver.com/
)
암튼 제가 하는 것에서 에러를 잡을 수 있는 방법이 있나요?
답변 8
0
이 부분에 대해서는 저도 명확히 해결해드리기는 어려울 것 같습니다. 해당 버전에서만 나타나는 에러인지,
또는 다른 원인 때문인지는 단서가 너무 부족하기 때문입니다. :(
그나마 현재 해볼만한 방법으로는 버전을 교체하는 방법 밖에는 떠오르지 않는군요.
0
안녕하세요, 실험해본 결과 일단은 정상적으로 나오는 것을 확인했습니다. 다만 위의 예제코드는 실수이시겠지만 __constract 라고 적으셨군요. 이는 PHP 7.4 에서 테스트 했습니다. 버전에 따라 체이닝은 지원하지 않는 경우도 있을 것이니 체크해보시기 바랍니다.
<?php
class Base
{
// public $baseUrl = 'http://naver.com';
public $baseUrl;
}
class Test
{
protected $config;
public function __construct($config)
{
$this->config = $config;
var_dump($this->config->baseUrl); // Passed
}
}
$appConfig = new Base();
$appConfig->baseUrl = 'http://naver.com';
new Test($appConfig);
아 그리고 Trying to get property 'baseUrl' of non-object 에러는 접근 객체($this->config)가 객체가 아닐 때 발생합니다. 예를 들면 다음의 예시처럼 준 경우입니다.
new Test(null);
따라서 질문자님이 남겨주신 예제에는 기본 값으로 '' 으로 되어있기 때문에 Test 객체 생성시 생성자에게 파라매터를 넘겨주지 않을 경우 기본값인 '' 이 할당되어 객체가 아니므로 접근할 수 없습니다.
53강 레이아웃에서 css git 링크 관련 질문입니다.
0
35
2
[섹션 5]레포지토리 소스파일 오류 위치, 수정 제안
0
180
1
add configuratio.. 자체에
0
268
2
터미널에 글이 안써집니다.
0
635
1
일반적으로 쓰이지 않는 폰트 부분
0
465
1
readmore 클릭시 쿼리내용 받아오는게 이해가 안되요
0
497
1
$_GET과 $_POST를 구별하여야한다고 하는데 이건 왜 $_GET입니까 콜백이라서 그런가요? 왜콜백은 그래도 되나요?
0
475
1
xdebug 설치가 안됩니다.
0
401
1
xdebug 설치 확인 페이지가 안열립니다
0
360
1
if ~ elseif ~ else 문법 표준적인 코딩 방법에 대한 질문입니다.
1
523
1
mysqli_stmt_close($stmt) 관련 질문드립니다.
0
319
1
DB_CONNECTION 부분 질문
0
267
1
FILTER_VALIDATE FILTER_SANITIZE 차이를 모르겠습니다.
0
296
1
결과 ...
0
244
1
random_bytes
0
319
1
preg_replace_callback 질문드립니다.
0
437
1
호스팅에 php 코드 업로드하면 hash 로직이 보이진 않을까요?
0
266
1
버퍼링 궁금한 점이 있습니다.
0
287
1
restore_include_path 오류
0
316
1
php 에러발생..
0
3759
3
터미널로 php 실행시 document root 지정
0
244
1
posts가 null이라고 나옵니다.
0
209
2
rand() vs random_int() 차이점?
0
520
1
php 8 로 하시는 분들을 위한 ini 팁
1
513
1





