ArrayAccess接口介绍_PHP教程
在 PHP5 中多了一系列新接口。在 HaoHappy 翻译的系列文章中 你可以了解到他们的应用。同时这些接口和一些实现的 Class 被归为 Standard PHP Library(SPL)。在 PHP5 中加入了很多特性,使类的重载 (Overloading) 得到进一步的加强。ArrayAccess 的作用是使你的 Class 看起来像一个数组 (PHP的数组)。这点和 C# 的 Index 特性很相似。
下面是 ArrayAccess 的定义:
interface ArrayAccess
boolean offsetExists($index)
mixed offsetGet($index)
void offsetSet($index, $newvalue)
void offsetUnset($index)
由于PHP的数组的强大,很多人在写 PHP 应用的时候经常将配置信息保存在一个数组里。于是可能在代码中到处都是 global。我们换种方式?
如以下代码:
//Configuration Class
class Configuration implements ArrayAccess
{
static private $config;
private $configarray;
private function __construct()
{
// init
$this->configarray = array("Binzy"=>"Male", "Jasmin"=>"Female");
}
public static function instance()
{
//
if (self::$config == null)
{
self::$config = new Configuration();
}
return self::$config;
}
function offsetExists($index)
{
return isset($this->configarray[$index]);
}
function offsetGet($index) {
return $this->configarray[$index];
}
function offsetSet($index, $newvalue) {
$this->configarray[$index] = $newvalue;
}
function offsetUnset($index) {
unset($this->configarray[$index]);
}
}
$config = Configuration::instance();
print $config["Binzy"];
正如你所预料的,程序的输出是"Male"。
假如我们做下面那样的动作:
$config = Configuration::instance();
print $config["Binzy"];
$config['Jasmin'] = "Binzy's Lover";
// config 2
$config2 = Configuration::instance();
print $config2['Jasmin'];
是的,也正如预料的,输出的将是Binzy's Lover。
也许你会问,这个和使用数组有什么区别呢?目的是没有区别的,但最大的区别在于封装。OO 的最基本的工作就是封装,而封装能有效将变化置于内部。也就是说,当配置信息不再保存在一个 PHP 数组中的时候,是的,应用代码无需任何改变。可能要做的,仅仅是为配置方案添加一个新的策略(Strategy)。:
ArrayAccess 在进一步完善中,因为现在是没有办法 count 的,虽然大多数情况并不影响我们的使用。
参考:
1. 《PHP5 Power Programming》
2. 《设计模式》
3. 《面向对象分析与设计》

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











엣지 브라우저에는 언제 어디서나 번역할 수 있는 번역 기능이 있어 사용자에게 큰 편리함을 제공합니다. 그러나 많은 사용자들은 내장된 번역 웹 페이지가 누락되었다고 말합니다. 그러면 엣지 브라우저가 자동으로 어떻게 해야 합니까? 내가 가져온 번역 페이지가 없어졌나요? Edge 브라우저와 함께 제공되는 번역된 웹 페이지가 누락된 경우 이를 복원하는 방법을 이 사이트에서 소개하겠습니다. Edge 브라우저에 포함된 번역 웹페이지가 누락되어 복원하는 방법 1. 번역 기능이 활성화되어 있는지 확인하십시오. Edge 브라우저에서 오른쪽 상단에 있는 세 개의 점 아이콘을 클릭한 후 "설정" 옵션을 선택하십시오. 설정 페이지 왼쪽에서 언어 옵션을 선택하세요. '번역'을 확인하세요.

7월 22일 소식에 따르면, 오늘 샤오미 더페이퍼 OS 공식 웨이보에서는 샤오아이 번역이 업그레이드됐다고 발표했다. 일본어와 한국어 번역에 실시간 자막이 추가됐고, 자막 없는 영상과 라이브 회의도 전사 및 번역이 가능해졌다. 실시간. 대면동시통역은 중국어, 영어, 일본어, 한국어, 러시아어, 포르투갈어, 스페인어, 이탈리아어, 프랑스어, 독일어, 인도네시아어, 힌디어 등 12개 언어 번역을 지원합니다. 위 기능은 현재 다음 세 가지 새로운 휴대폰만 지원합니다. Xiaomi MIX Fold 4 Xiaomi MIX Flip Redmi K70 Extreme Edition 2021년에는 Xiao Ai의 AI 자막이 일본어 및 한국어 번역에 추가될 예정인 것으로 알려졌습니다. AI 자막은 샤오미가 자체 개발한 동시통역 기술을 사용해 더 빠르고 안정적이며 정확한 자막 읽기 경험을 제공합니다. 1. 공식 성명에 따르면 Xiaoai 번역기는 오디오 및 비디오 장소에서만 사용할 수 있는 것이 아닙니다.

컴퓨터를 조립할 때 설치 과정은 간단하지만 배선에 문제가 발생하는 경우가 종종 있습니다. 컴퓨터가 켜지면 F1 오류 "CPUFanError"가 발생하며 이로 인해 CPU 쿨러가 지능적으로 속도를 조정할 수 없게 됩니다. 컴퓨터 마더보드의 CPU_FAN, SYS_FAN, CHA_FAN, CPU_OPT 인터페이스에 대한 상식을 공유해 보겠습니다. 컴퓨터 마더보드의 CPU_FAN, SYS_FAN, CHA_FAN 및 CPU_OPT 인터페이스에 대한 대중적인 과학 1. CPU_FANCPU_FAN은 CPU 라디에이터 전용 인터페이스이며 12V에서 작동합니다.

현대적이고 효율적인 프로그래밍 언어인 Go 언어에는 개발자가 유지 관리 가능한 고품질 코드를 작성하는 데 도움이 될 수 있는 풍부한 프로그래밍 패러다임과 디자인 패턴이 있습니다. 이 기사에서는 Go 언어의 일반적인 프로그래밍 패러다임과 디자인 패턴을 소개하고 구체적인 코드 예제를 제공합니다. 1. 객체지향 프로그래밍 Go 언어에서는 구조와 메소드를 사용하여 객체지향 프로그래밍을 구현할 수 있습니다. 구조를 정의하고 구조에 대한 바인딩 방법을 통해 데이터 캡슐화 및 동작 바인딩의 객체 지향 기능을 구현할 수 있습니다. 패키지메니

브라우저에는 일반적으로 번역 기능이 내장되어 있으므로 외국어 웹사이트를 탐색할 때 이해하지 못할까 봐 걱정할 필요가 없습니다! Chrome도 예외는 아니지만 일부 사용자는 Google Chrome의 번역 기능을 열 때 응답이 없거나 실패하는 것을 발견합니다. 내가 찾은 최신 솔루션을 사용해 볼 수 있습니다. 작업 튜토리얼: 오른쪽 상단 모서리에 있는 세 개의 점을 클릭하고 설정을 클릭합니다. 언어 추가를 클릭하고, 영어와 중국어를 추가한 후, 영어 설정은 해당 언어로 웹페이지를 번역할지 묻습니다. 중국어 설정은 웹페이지를 해당 언어로 표시하며, 그 전에 중국어를 맨 위로 이동해야 합니다. 기본 언어로 설정할 수 있습니다. 웹 페이지를 열었는데 번역 옵션이 팝업되지 않으면 마우스 오른쪽 버튼을 클릭하고 중국어 번역, 확인을 선택하세요.

Google 크롬이 중국어를 번역할 수 없는 이유는 무엇입니까? 우리 모두 알고 있듯이 Google 크롬은 번역 기능이 내장된 브라우저 중 하나입니다. 이 브라우저에서 다른 나라에서 작성된 페이지를 탐색하면 브라우저가 자동으로 해당 페이지를 중국어로 번역한다고 합니다. 현재로서는 설정에서 수정해야 합니다. 다음으로, 편집자는 Google 크롬이 중국어로 번역할 수 없는 문제에 대한 해결책을 제시할 것입니다. 관심 있는 친구들은 와서 살펴볼 수 있습니다. Google 크롬은 중국어 솔루션을 번역할 수 없습니다. 1. 로컬 호스트 파일을 수정합니다. 호스트는 확장자가 없는 시스템 파일입니다. 주요 기능은 IP 주소와 호스트 이름 간의 매핑 관계를 정의하는 것입니다. 매핑 IP 주소입니다.

PHP 인터페이스 소개 및 정의 방법 PHP는 웹 개발에 널리 사용되는 오픈 소스 스크립팅 언어입니다. 유연하고 간단하며 강력합니다. PHP에서 인터페이스는 여러 클래스 간의 공통 메서드를 정의하여 다형성을 달성하고 코드를 보다 유연하고 재사용 가능하게 만드는 도구입니다. 이 기사에서는 PHP 인터페이스의 개념과 이를 정의하는 방법을 소개하고 사용법을 보여주는 특정 코드 예제를 제공합니다. 1. PHP 인터페이스 개념 인터페이스는 클래스 애플리케이션을 정의하는 객체 지향 프로그래밍에서 중요한 역할을 합니다.

Dogecoin은 고정된 공급 한도가 없고, 빠른 거래 시간, 낮은 거래 수수료, 대규모 밈 커뮤니티가 있는 인터넷 밈을 기반으로 만들어진 암호화폐입니다. 용도로는 소액 거래, 팁, 자선 기부 등이 있습니다. 그러나 무제한 공급, 시장 변동성, 조크 코인으로서의 지위 역시 위험과 우려를 불러일으킵니다. 도지코인이란 무엇입니까? Dogecoin은 인터넷 밈과 농담을 기반으로 만들어진 암호화폐입니다. 기원과 역사: Dogecoin은 2013년 12월 두 명의 소프트웨어 엔지니어 Billy Markus와 Jackson Palmer에 의해 만들어졌습니다. 당시 인기 있었던 "Doge" 밈에서 영감을 받아, 영어가 서툰 시바견이 등장하는 코믹한 사진입니다. 특징 및 이점: 무제한 공급: 비트코인과 같은 다른 암호화폐와는 달리
