9a135bd19d
최상위 10_Wiki/Topic_*였던 4개 카테고리 폴더를 10_Wiki/Topics/Topic_* 로 재배치. 콘텐츠 변경 없음(순수 폴더 이동) — Topics/ 하위 나머지 폴더는 이미 지난 커밋에서 전부 정리된 상태(잔존 항목은 에이전트 운영 상태 및 사용자가 보존을 요청한 업데이트0615/무제 3.canvas 뿐).
3.9 KiB
3.9 KiB
id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
| id | title | category | status | verification_status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | created_at | updated_at | review_reason | merge_history | tags | raw_sources | applied_in | github_commit | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| php-casting | PHP Casting | Programming_Language | draft | conceptual |
|
B | 0.9 | 2026-07-04 | 2026-07-04 |
|
|
PHP Casting
🎯 한 줄 통찰 (One-line insight)
Casting an object to an array converts its property names into array keys automatically ((array) $myCar turns color/model properties into ["color" => ..., "model" => ...]) — this reversible object↔associative-array relationship is a core mechanic for interoperating between OOP and plain data structures in PHP. [S1]
🧠 핵심 개념 (Core concepts)
- Casting operators —
(string),(int),(float),(bool),(array),(object),(unset)(deprecated in 7.2, removed in 8.0). [S1] - Bool cast rule —
0,NULL,false,""(empty string) convert tofalse; everything else (even-1) converts totrue. [S1] - Array cast on scalars — most types become a single-element indexed array. [S1]
- Array cast on objects — becomes an associative array with property names as keys. [S1]
- Object cast on scalars — becomes an object with one property named
"scalar". [S1] - Object cast on arrays — indexed arrays get numeric-index property names; associative arrays keep their keys as property names. [S1]
- NULL casting — the deprecated/removed
(unset)operator is replaced by simply assigningNULLdirectly. [S1]
📖 세부 내용 (Details)
- Bool falsy values:
$c = 0; $g = ""; // both cast to false, while$d = -1; // casts to true. [S1] - Object → array:
class Car { public $color; public $model; ... } $myCar = new Car("red", "Volvo"); $myCar = (array) $myCar; var_dump($myCar); // ["color" => "red", "model" => "Volvo"]. [S1] - Indexed array → object:
$a = array("Volvo", "BMW", "Toyota"); $a = (object) $a; // properties named 0, 1, 2. [S1] - Associative array → object:
$b = array("Peter"=>"35", "Ben"=>"37"); $b = (object) $b; // properties named Peter, Ben. [S1]
⚖️ 모순 및 업데이트 (Contradictions & updates)
- (unset) 캐스팅 지원 중단: PHP 7.2.0에서 지원 중단(deprecated), PHP 8.0.0에서 완전히 제거됨 — 대신 변수에 NULL을 직접 할당하는 방식 사용. [S1]
🛠️ 적용 사례 (Applied in summary)
현재 발견된 실제 적용 사례가 없습니다 — 객체를 연관 배열로 변환하는 패턴이 데이터 직렬화/디버깅에서 자주 쓰인다. [S1]
💻 코드 패턴 (Code patterns)
Casting an object to an associative array (PHP):
class Car {
public $color;
public $model;
public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}
}
$myCar = new Car("red", "Volvo");
$myCar = (array) $myCar;
var_dump($myCar); // ["color" => "red", "model" => "Volvo"]
✅ 검증 상태 및 신뢰도
- 상태: draft
- 검증 단계: conceptual
- 출처 신뢰도: B (W3Schools — widely used educational reference, not a primary standards body)
- 신뢰 점수: 0.90
- 중복 검사 결과: 신규 생성 (New discovery)
🔗 지식 그래프 (Knowledge Graph)
- 상위/루트: PHP Tutorial
- 관련 개념: PHP Numbers, PHP Data Types, PHP OOP Classes Objects, PHP Arrays
- 참조 맥락: 명시적 타입 변환 — 수학함수(Math) 챕터로 이어짐.
📚 출처 (Sources)
- [S1] W3Schools — PHP Type Casting — https://www.w3schools.com/php/php_casting.asp
📝 변경 이력 (Change history)
- 2026-07-04: Initial draft synthesized from the W3Schools "PHP Type Casting" page (Astra wiki-curation, P-Reinforce v3.1 format).