php教程 php手册 Shen Yi 선생님의 특별 PHP 교육 노트(5)

Shen Yi 선생님의 특별 PHP 교육 노트(5)

Aug 30, 2016 am 09:21 AM

  이전 강의에 이어 새로운 godconfig 클래스를 생성하고 prj_name(프로젝트 이름)과 prj_author(작성자) 두 가지 속성을 설정한 다음 표준 입력(stdin)을 얻어 결과를 클래스에 저장했습니다.

알겠습니다. 이 강의 이름이 좀 이상합니다. 저는 "게으른 암"에 걸렸습니다. godconfig 클래스의 속성을 작성하는 것을 잊어버리면 프로그램이 계속 실행됩니까? 대답은 여전히 ​​가능합니다. PHP는 자동으로 수업에 속성을 추가합니다(이것은 교사 PPT의 원래 단어입니다).
GOON, 계속 게으르게 지내세요. 이제 더 이상 godconfig 클래스를 만들고 싶지 않습니다. 여기서는 $gc = new stdClass()

를 사용합니다.

이전 요점은 매우 간단하므로 코드 및 실행 결과를 게시하지 않겠습니다.

다음으로 또 다른 실제 요구 사항이 있습니다. 함수 파일에 functionTC() //임시 클래스의 의미(이 이름은 교사가 임의로 선택함)라는 메서드를 작성합니다. 반환된 임시 클래스를 나타냅니다.

첫 번째 글쓰기 방법:

<?<span style="color: #000000;">php

</span><span style="color: #0000ff;">require</span>('godconfig.php');                    <span style="color: #008000;">//</span><span style="color: #008000;">引入gonconfig这个文件</span>
<span style="color: #0000ff;">class</span> godinit                                <span style="color: #008000;">//</span><span style="color: #008000;">创建一个类,godinit</span>
<span style="color: #000000;">{
    </span><span style="color: #0000ff;">static</span>  <span style="color: #800080;">$v</span>="god version is 1.2";         <span style="color: #008000;">//</span><span style="color: #008000;">声明一个静态属性$VERSION</span>

    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> init()                   <span style="color: #008000;">//</span><span style="color: #008000;">静态方法 init</span>
<span style="color: #000000;">    {
        </span><span style="color: #008000;">//</span><span style="color: #008000;">$gc = new godconfig();             //实例化godconfig里定义的类
        //$gc = new stdClass();</span>
        <span style="color: #0000ff;">echo</span> "input your project name?".<span style="color: #ff00ff;">PHP_EOL</span><span style="color: #000000;">;
        </span><span style="color: #008000;">//</span><span style="color: #008000;">$gc -> prj_name = fgets(STDIN);            //从标准输入中获取用户输入的字符并赋值给实例化属性$prj_name
        <span style="color: #800080;">$prj_name</span> = <span style="color: #008080;">fgets</span>(STDIN);           <span style="color: #008000;">//</span><span style="color: #008000;">重新获取用户输入,并赋值给$prj_name</span>
        
        <span style="color: #0000ff;">echo</span> "input your author name?".<span style="color: #ff00ff;">PHP_EOL</span><span style="color: #000000;">;
        </span><span style="color: #008000;">//</span><span style="color: #008000;">$gc -> prj_author=fgets(STDIN);</span>
        <span style="color: #800080;">$prj_author</span> = <span style="color: #008080;">fgets</span>(STDIN);         <span style="color: #008000;">//</span><span style="color: #008000;">重新获取用户输入,并赋值给$prj_author</span>

        <span style="color: #0000ff;">echo</span> json_encode(TC(<span style="color: #0000ff;">array</span>('prj_name'=><span style="color: #800080;">$prj_name</span>,'prj_author'=><span style="color: #800080;">$prj_author</span><span style="color: #000000;">)));
    }</span>
    <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">function</span> __callStatic(<span style="color: #800080;">$p1</span>,<span style="color: #800080;">$p2</span><span style="color: #000000;">){
        </span><span style="color: #0000ff;">echo</span> "error function"<span style="color: #000000;">;
    }
}
</span>?>
로그인 후 복사

 동시에 god_func7 파일에 TC 메소드를 작성합니다.

<?<span style="color: #000000;">php
</span><span style="color: #008000;">//</span><span style="color: #008000;">functions for PHP7</span>
<span style="color: #0000ff;">function</span> genConfig(<span style="color: #800080;">$cnt</span>):<span style="color: #0000ff;">string</span><span style="color: #000000;">
{
    </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">file_put_contents</span>(<span style="color: #008080;">getcwd</span>().'/god.json',<span style="color: #800080;">$cnt</span>).' of bytes is written.'.<span style="color: #ff00ff;">PHP_EOL</span>.'god config is created'<span style="color: #000000;">;
}
</span><span style="color: #0000ff;">function</span> TC(<span style="color: #800080;">$p</span><span style="color: #000000;">){
    </span><span style="color: #ff0000;">$get_class = new</span><span style="color: #000000;"><span style="color: #ff0000;"> stdClass();</span>
    </span><span style="color: #ff0000;">foreach ($p as $k => $v){
        $get_class -> $k=$v;
    }
    return $get_class<span style="color: #000000;"><span style="color: #ff0000;">;</span>
}</span>
로그인 후 복사

 그럼 원래 작성 방법과 정확히 동일한 결과를 살펴보겠습니다.

 

이제 Godconfig를 빌드하지 않고도 구현할 수 있습니다.

두 번째로 쓰는 방법이 있습니다. 너무 게으른 나머지 기억이 나지 않습니다. 글쎄, 이건 진짜 게으름이다.

  세 번째 작성 방법은 PHP7 익명 클래스와 관련이 있습니다.

PHP의 생성자는 __construct(parameter) {}입니다. 이 함수는 클래스가 인스턴스화될 때 먼저 실행됩니다. 다음으로 PHP7의 익명 클래스를 살펴보겠습니다(실제로는 미스터리가 없습니다. 소위 익명이라는 것은 이름이 없다는 것을 의미합니다). 유일한 차이점은 익명 클래스가 외부 변수를 사용하려면 전달되어야 한다는 것입니다. 그렇지 않으면 사용할 수 없습니다.

<?<span style="color: #000000;">php
</span><span style="color: #008000;">//</span><span style="color: #008000;">functions for PHP7</span>
<span style="color: #0000ff;">function</span> genConfig(<span style="color: #800080;">$cnt</span>):<span style="color: #0000ff;">string</span><span style="color: #000000;">
{
    </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">file_put_contents</span>(<span style="color: #008080;">getcwd</span>().'/god.json',<span style="color: #800080;">$cnt</span>).' of bytes is written.'.<span style="color: #ff00ff;">PHP_EOL</span>.'god config is created'<span style="color: #000000;">;
}
</span><span style="color: #0000ff;">function</span> TC(<span style="color: #800080;">$p</span><span style="color: #000000;">){
     </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> <span style="color: #0000ff;">class</span>(<span style="color: #800080;">$p</span>){          <span style="color: #008000;">//</span><span style="color: #008000;">this is 匿名类</span>
         <span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$p</span><span style="color: #000000;">){
             </span><span style="color: #0000ff;">foreach</span> (<span style="color: #800080;">$p</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$k</span> => <span style="color: #800080;">$v</span><span style="color: #000000;">){
                 </span><span style="color: #800080;">$this</span> -> <span style="color: #800080;">$k</span> = <span style="color: #800080;">$v</span><span style="color: #000000;">;
             }
         }
     };
}</span>
로그인 후 복사

 사실 위 내용은 전혀 게으르지 않고 코드를 너무 많이 작성해서 ^_^;

결과를 ​​살펴보겠습니다.

 


저작권 설명: 노트 정리함 Desperado는 자유를 사랑하고 공유를 옹호합니다. 하지만 이 메모는 Shen Yi 선생님의 www.jtthink.com (Programmer on the Road) "PHP 악마 훈련 과정의 첫 번째 단계"에서 가져온 것입니다. 이 학습 노트는 블로그에 처음 게시되었습니다. 다시 인쇄해야 하는 경우 선생님의 작업을 존중하고 Shen Yi 선생님의 서명과 강좌 소스 주소를 보관하시기 바랍니다.

잘못된 지식 포인트:

1. stdClass: PHP 내장 최상위 클래스로 실제로는 기본 클래스이며 공백입니다. 아무것도 아님. 일시적으로 사용하면 다른 곳에서는 거의 사용되지 않습니다. 그러면 새 엔터티 클래스를 전혀 만들 필요가 없습니다. 새로운 stdClass를 직접 생성하세요.
2. foreach는 배열을 순회합니다

3. 익명 수업 :  

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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