에서 상수 이름은 내가 문자열의 색깔 HTML 표현을 리턴이PHP : 변수
class Painter {
const COLOR_PHYSIC = 'brown';
const COLOR_PSYCHIC = 'purple';
const COLOR_ATTACKER = 'dodgerblue';
const COLOR_DEFENDER = 'darkorange';
public function __call($name, $arguments) {
if(defined('self::'.$name)) $name = self::$$name;
return '<span class="'.$name.'">'.$arguments[0].'</span>';
}
}
처럼 보이는 PHP 클래스가 있습니다. 사용 예제는 :
$painter->red('Text'); // <span class="red">Text</span>
나는 또한 필요에 내가 끼 었어 곳이다, 존재하는 경우, 향후 변경 될 수있는 몇 가지 사전 설정 색상을 가지고 싶습니다. 내가이 줄을 실행하면
$painter->COLOR_DEFENDER('Text');
가 나는 오류 메시지가 선언되지 않은 정적 속성에
액세스를 얻을 : 화가 : $ COLOR_DEFENDER 내가 코드를 수정하는 방법
그래서 $name
도 상수로 해석 될 수 있습니까?
또한 사이드 노트에서 프리셋 색상을 상수 대신 배열에 저장하는 방법을 변경하면 메모리를 적게 사용하는지 확인하는 것이 궁금합니다. 후류 PHP에 익숙한 사람이이 질문에 대답 할 수 있다면 정말 행복 할 것입니다. 미리 감사드립니다!
상수 대신 개인 멤버를 선언하면 어떤 문제가 발생합니까? – mudasobwa
@ mudasobwa 실제로 상수를 사용하기로 결정한 이유를 실제로 알지 못하지만 어쨌든 여전히 답을 알고 싶습니다. 유효한 질문입니다. –
'self :: $ name'에 2 개의 $ 기호를 사용하고 있습니다. 1을 제거하고 다시 시도 할 수 있습니까? –