백엔드 개발 PHP 튜토리얼 자신만의 PHP 프레임워크 구축 - 모델 클래스 3 구현

자신만의 PHP 프레임워크 구축 - 모델 클래스 3 구현

Jul 29, 2016 am 09:01 AM
model static

이전 블로그에서는 Model 클래스의 findOne 메소드를 구현하고 개선했는데, 아래의 다른 메소드도 구현해 보겠습니다.

먼저 findAll 메소드를 살펴보겠습니다. 이 메소드는 findOne과 매우 유사합니다.

<code><span>public</span><span>static</span><span>function</span> findOne<span>(</span><span>$condition</span> = <span>null</span><span>)</span>
    {
        <span>$sql</span> = <span>'select * from '</span> . <span>static</span>::tableName<span>();</span><span>$params</span> = <span>[];</span><span>// 判空</span><span>if</span><span>(</span>!<span>empty</span><span>(</span><span>$condition</span><span>))</span> {
            <span>$sql</span> .= <span>' where '</span><span>;</span><span>$params</span> = <span>array_values</span><span>(</span><span>$condition</span><span>);</span><span>$keys</span> = <span>[];</span><span>foreach</span><span>(</span><span>$condition</span><span>as</span><span>$key</span> => <span>$value</span><span>)</span> {
                <span>array_push</span><span>(</span><span>$keys</span><span>,</span><span>"</span><span>$key</span><span> = ?"</span><span>);</span>
            }
            <span>$sql</span> .= <span>implode</span><span>(</span><span>' and '</span><span>,</span><span>$keys</span><span>);</span>
        }

        <span>$stmt</span> = <span>static</span>::getDb<span>()</span>->prepare<span>(</span><span>$sql</span><span>);</span><span>$rs</span> = <span>$stmt</span>->execute<span>(</span><span>$params</span><span>);</span><span>$models</span> = <span>[];</span><span>if</span><span>(</span><span>$rs</span><span>)</span> {
            <span>// 直接获取出所有符合条件的</span><span>$rows</span> = <span>$stmt</span>->fetchAll<span>(</span><span>PDO</span>::<span>FETCH_ASSOC</span><span>);</span><span>foreach</span><span>(</span><span>$rows</span><span>as</span><span>$row</span><span>)</span> {
                <span>if</span><span>(</span>!<span>empty</span><span>(</span><span>$row</span><span>))</span> {
                    <span>$model</span> = <span>new</span><span>static</span><span>();</span><span>foreach</span><span>(</span><span>$row</span><span>as</span><span>$rowKey</span> => <span>$rowValue</span><span>)</span> {
                        <span>$model</span>-><span>$rowKey</span> = <span>$rowValue</span><span>;</span>
                    }
                    <span>array_push</span><span>(</span><span>$models</span><span>,</span><span>$model</span><span>);</span>
                }
            }
        }

        <span>return</span><span>null</span><span>;</span>
    }</code>
로그인 후 복사

findOne과 findAll 메소드가 매우 유사하다는 것을 알 수 있습니다. 공통 부분을 추출할 수 있다는 것은 명백하며 다음과 같은 두 가지 메소드가 있습니다.

<code><span>/**</span><span>     * Build a sql where part</span><span>     * </span><span>@param</span><span>mixed</span><span> $condition a set of column values</span><span>     * </span><span>@return</span><span> string</span><span>     */</span><span>public</span><span>static</span><span>function</span> buildWhere<span>(</span><span>$condition</span><span>,</span><span>$params</span> = <span>null</span><span>)</span>
    {
        <span>if</span><span>(</span><span>is_null</span><span>(</span><span>$params</span><span>))</span> {
            <span>$params</span> = <span>[];</span>
        }

        <span>$where</span> = <span>''</span><span>;</span><span>if</span><span>(</span>!<span>empty</span><span>(</span><span>$condition</span><span>))</span> {
            <span>$where</span> .= <span>' where '</span><span>;</span><span>$keys</span> = <span>[];</span><span>foreach</span><span>(</span><span>$condition</span><span>as</span><span>$key</span> => <span>$value</span><span>)</span> {
                <span>array_push</span><span>(</span><span>$keys</span><span>,</span><span>"</span><span>$key</span><span> = ?"</span><span>);</span><span>array_push</span><span>(</span><span>$params</span><span>,</span><span>$value</span><span>);</span>
            }
            <span>$where</span> .= <span>implode</span><span>(</span><span>' and '</span><span>,</span><span>$keys</span><span>);</span>
        }
        <span>return</span><span>[</span><span>$where</span><span>,</span><span>$params</span><span>];</span>
    }

    <span>/**</span><span>     * Convert array to model</span><span>     * </span><span>@param</span><span>mixed</span><span> $row the row data from database</span><span>     */</span><span>public</span><span>static</span><span>function</span> arr2Model<span>(</span><span>$row</span><span>)</span>
    {
        <span>$model</span> = <span>new</span><span>static</span><span>();</span><span>foreach</span><span>(</span><span>$row</span><span>as</span><span>$rowKey</span> => <span>$rowValue</span><span>)</span> {
            <span>$model</span>-><span>$rowKey</span> = <span>$rowValue</span><span>;</span>
        }
        <span>return</span><span>$model</span><span>;</span>
    }</code>
로그인 후 복사

은 각각 SQL의 where 부분을 구성하는 방법과 찾은 Array를 Model로 변환하는 방법이다. 첫 번째 메서드에 params 매개 변수와 반환 값이 필요한 이유가 궁금할 수 있습니다. 실제로 이는 나중에 updateAll 메서드를 사용하기 위한 것입니다. 실제로 이 곳은 참조값 전달을 사용하기에 적합합니다.

이런 방식으로 findOne과 findAll은 다음과 같습니다.

<code><span>/**</span><span>     * Returns a single model instance by a primary key or an array of column values.</span><span>     *</span><span>     * ```php</span><span>     * // find the first customer whose age is 30 and whose status is 1</span><span>     * $customer = Customer::findOne(['age' => 30, 'status' => 1]);</span><span>     * ```</span><span>     *</span><span>     * </span><span>@param</span><span>mixed</span><span> $condition a set of column values</span><span>     * </span><span>@return</span><span> static|null Model instance matching the condition, or null if nothing matches.</span><span>     */</span><span>public</span><span>static</span><span>function</span> findOne<span>(</span><span>$condition</span> = <span>null</span><span>)</span>
    {
        <span>list</span><span>(</span><span>$where</span><span>,</span><span>$params</span><span>)</span> = <span>static</span>::buildWhere<span>(</span><span>$condition</span><span>);</span><span>$sql</span> = <span>'select * from '</span> . <span>static</span>::tableName<span>()</span> . <span>$where</span><span>;</span><span>$stmt</span> = <span>static</span>::getDb<span>()</span>->prepare<span>(</span><span>$sql</span><span>);</span><span>$rs</span> = <span>$stmt</span>->execute<span>(</span><span>$params</span><span>);</span><span>if</span><span>(</span><span>$rs</span><span>)</span> {
            <span>$row</span> = <span>$stmt</span>->fetch<span>(</span><span>PDO</span>::<span>FETCH_ASSOC</span><span>);</span><span>if</span><span>(</span>!<span>empty</span><span>(</span><span>$row</span><span>))</span> {
                <span>return</span><span>static</span>::arr2Model<span>(</span><span>$row</span><span>);</span>
            }
        }

        <span>return</span><span>null</span><span>;</span>
    }

    <span>/**</span><span>     * Returns a list of models that match the specified primary key value(s) or a set of column values.</span><span>     *</span><span>     *  ```php</span><span>     * // find customers whose age is 30 and whose status is 1</span><span>     * $customers = Customer::findAll(['age' => 30, 'status' => 1]);</span><span>     * ```</span><span>     *</span><span>     * </span><span>@param</span><span>mixed</span><span> $condition a set of column values</span><span>     * </span><span>@return</span><span> array an array of Model instance, or an empty array if nothing matches.</span><span>     */</span><span>public</span><span>static</span><span>function</span> findAll<span>(</span><span>$condition</span> = <span>null</span><span>)</span>
    {
        <span>list</span><span>(</span><span>$where</span><span>,</span><span>$params</span><span>)</span> = <span>static</span>::buildWhere<span>(</span><span>$condition</span><span>);</span><span>$sql</span> = <span>'select * from '</span> . <span>static</span>::tableName<span>()</span> . <span>$where</span><span>;</span><span>$stmt</span> = <span>static</span>::getDb<span>()</span>->prepare<span>(</span><span>$sql</span><span>);</span><span>$rs</span> = <span>$stmt</span>->execute<span>(</span><span>$params</span><span>);</span><span>$models</span> = <span>[];</span><span>if</span><span>(</span><span>$rs</span><span>)</span> {
            <span>$rows</span> = <span>$stmt</span>->fetchAll<span>(</span><span>PDO</span>::<span>FETCH_ASSOC</span><span>);</span><span>foreach</span><span>(</span><span>$rows</span><span>as</span><span>$row</span><span>)</span> {
                <span>if</span><span>(</span>!<span>empty</span><span>(</span><span>$row</span><span>))</span> {
                    <span>$model</span> = <span>static</span>::arr2Model<span>(</span><span>$row</span><span>);</span><span>array_push</span><span>(</span><span>$models</span><span>,</span><span>$model</span><span>);</span>
                }
            }
        }

        <span>return</span><span>$models</span><span>;</span>
    }</code>
로그인 후 복사

나머지 updateAll/deleteAll/insert/update 및 삭제 방법은 다릅니다. 자세한 내용은 코드가 직접 제공됩니다. 기본 아이디어는 동일하며 모두 규칙에 따라 SQL 문을 연결합니다.

<code><span>/**</span><span>     * Updates models using the provided attribute values and conditions.</span><span>     * For example, to change the status to be 2 for all customers whose status is 1:</span><span>     *</span><span>     * ~~~</span><span>     * Customer::updateAll(['status' => 1], ['status' => '2']);</span><span>     * ~~~</span><span>     *</span><span>     * </span><span>@param</span><span>array</span><span> $attributes attribute values (name-value pairs) to be saved for the model.</span><span>     * </span><span>@param</span><span>array</span><span> $condition the condition that matches the models that should get updated.</span><span>     * An empty condition will match all models.</span><span>     * </span><span>@return</span><span> integer the number of rows updated</span><span>     */</span><span>public</span><span>static</span><span>function</span> updateAll<span>(</span><span>$condition</span><span>,</span><span>$attributes</span><span>)</span>
    {
        <span>$sql</span> = <span>'update '</span> . <span>static</span>::tableName<span>();</span><span>$params</span> = <span>[];</span><span>if</span><span>(</span>!<span>empty</span><span>(</span><span>$attributes</span><span>))</span> {
            <span>$sql</span> .= <span>' set '</span><span>;</span><span>$params</span> = <span>array_values</span><span>(</span><span>$attributes</span><span>);</span><span>$keys</span> = <span>[];</span><span>foreach</span><span>(</span><span>$attributes</span><span>as</span><span>$key</span> => <span>$value</span><span>)</span> {
                <span>array_push</span><span>(</span><span>$keys</span><span>,</span><span>"</span><span>$key</span><span> = ?"</span><span>);</span>
            }
            <span>$sql</span> .= <span>implode</span><span>(</span><span>' , '</span><span>,</span><span>$keys</span><span>);</span>
        }

        <span>list</span><span>(</span><span>$where</span><span>,</span><span>$params</span><span>)</span> = <span>static</span>::buildWhere<span>(</span><span>$condition</span><span>,</span><span>$params</span><span>);</span><span>$sql</span> .= <span>$where</span><span>;</span><span>$stmt</span> = <span>static</span>::getDb<span>()</span>->prepare<span>(</span><span>$sql</span><span>);</span><span>$execResult</span> = <span>$stmt</span>->execute<span>(</span><span>$params</span><span>);</span><span>if</span><span>(</span><span>$execResult</span><span>)</span> {
            <span>// 获取更新的行数</span><span>$execResult</span> = <span>$stmt</span>->rowCount<span>();</span>
        }
        <span>return</span><span>$execResult</span><span>;</span>
    }

    <span>/**</span><span>     * Deletes models using the provided conditions.</span><span>     * WARNING: If you do not specify any condition, this method will delete ALL rows in the table.</span><span>     *</span><span>     * For example, to delete all customers whose status is 3:</span><span>     *</span><span>     * ~~~</span><span>     * Customer::deleteAll([status = 3]);</span><span>     * ~~~</span><span>     *</span><span>     * </span><span>@param</span><span>array</span><span> $condition the condition that matches the models that should get deleted.</span><span>     * An empty condition will match all models.</span><span>     * </span><span>@return</span><span> integer the number of rows deleted</span><span>     */</span><span>public</span><span>static</span><span>function</span> deleteAll<span>(</span><span>$condition</span><span>)</span>
    {
        <span>list</span><span>(</span><span>$where</span><span>,</span><span>$params</span><span>)</span> = <span>static</span>::buildWhere<span>(</span><span>$condition</span><span>);</span><span>$sql</span> = <span>'delete from '</span> . <span>static</span>::tableName<span>()</span> . <span>$where</span><span>;</span><span>$stmt</span> = <span>static</span>::getDb<span>()</span>->prepare<span>(</span><span>$sql</span><span>);</span><span>$execResult</span> = <span>$stmt</span>->execute<span>(</span><span>$params</span><span>);</span><span>if</span><span>(</span><span>$execResult</span><span>)</span> {
            <span>// 获取删除的行数</span><span>$execResult</span> = <span>$stmt</span>->rowCount<span>();</span>
        }
        <span>return</span><span>$execResult</span><span>;</span>
    }

    <span>/**</span><span>     * Inserts the model into the database using the attribute values of this record.</span><span>     *</span><span>     * Usage example:</span><span>     *</span><span>     * ```php</span><span>     * $customer = new Customer;</span><span>     * $customer->name = $name;</span><span>     * $customer->email = $email;</span><span>     * $customer->insert();</span><span>     * ```</span><span>     *</span><span>     * </span><span>@return</span><span> boolean whether the model is inserted successfully.</span><span>     */</span><span>public</span><span>function</span> insert<span>()</span>
    {
        <span>$sql</span> = <span>'insert into '</span> . <span>static</span>::tableName<span>();</span><span>$params</span> = <span>[];</span><span>$keys</span> = <span>[];</span><span>foreach</span><span>(</span><span>$this</span><span>as</span><span>$key</span> => <span>$value</span><span>)</span> {
            <span>array_push</span><span>(</span><span>$keys</span><span>,</span><span>$key</span><span>);</span><span>array_push</span><span>(</span><span>$params</span><span>,</span><span>$value</span><span>);</span>
        }
        <span>// 构建由?组成的数组,其个数与参数相等数相同</span><span>$holders</span> = <span>array_fill</span><span>(</span><span>0</span><span>,</span><span>count</span><span>(</span><span>$keys</span><span>),</span><span>'?'</span><span>);</span><span>$sql</span> .= <span>' ('</span> . <span>implode</span><span>(</span><span>' , '</span><span>,</span><span>$keys</span><span>)</span> . <span>') values ( '</span> . <span>implode</span><span>(</span><span>' , '</span><span>,</span><span>$holders</span><span>)</span> . <span>')'</span><span>;</span><span>$stmt</span> = <span>static</span>::getDb<span>()</span>->prepare<span>(</span><span>$sql</span><span>);</span><span>$execResult</span> = <span>$stmt</span>->execute<span>(</span><span>$params</span><span>);</span><span>// 将一些自增值赋回Model中</span><span>$primaryKeys</span> = <span>static</span>::primaryKey<span>();</span><span>foreach</span><span>(</span><span>$primaryKeys</span><span>as</span><span>$name</span><span>)</span> {
            <span>// Get the primary key</span><span>$lastId</span> = <span>static</span>::getDb<span>()</span>->lastInsertId<span>(</span><span>$name</span><span>);</span><span>$this</span>-><span>$name</span> = <span>(int)</span><span>$lastId</span><span>;</span>
        }
        <span>return</span><span>$execResult</span><span>;</span>
    }

    <span>/**</span><span>     * Saves the changes to this model into the database.</span><span>     *</span><span>     * Usage example:</span><span>     *</span><span>     * ```php</span><span>     * $customer = Customer::findOne(['id' => $id]);</span><span>     * $customer->name = $name;</span><span>     * $customer->email = $email;</span><span>     * $customer->update();</span><span>     * ```</span><span>     *</span><span>     * </span><span>@return</span><span> integer|boolean the number of rows affected.</span><span>     * Note that it is possible that the number of rows affected is 0, even though the</span><span>     * update execution is successful.</span><span>     */</span><span>public</span><span>function</span> update<span>()</span>
    {
        <span>$primaryKeys</span> = <span>static</span>::primaryKey<span>();</span><span>$condition</span> = <span>[];</span><span>foreach</span><span>(</span><span>$primaryKeys</span><span>as</span><span>$name</span><span>)</span> {
            <span>$condition</span><span>[</span><span>$name</span><span>]</span> = <span>isset</span><span>(</span><span>$this</span>-><span>$name</span><span>)</span><span>?</span><span>$this</span>-><span>$name</span><span>:</span><span>null</span><span>;</span>
        }

        <span>$attributes</span> = <span>[];</span><span>foreach</span><span>(</span><span>$this</span><span>as</span><span>$key</span> => <span>$value</span><span>)</span> {
            <span>if</span><span>(</span>!<span>in_array</span><span>(</span><span>$key</span><span>,</span><span>$primaryKeys</span><span>,</span><span>true</span><span>))</span> {
                <span>$attributes</span><span>[</span><span>$key</span><span>]</span> = <span>$value</span><span>;</span>
            }
        }

        <span>return</span><span>static</span>::updateAll<span>(</span><span>$condition</span><span>,</span><span>$attributes</span><span>)</span> !== <span>false</span><span>;</span>
    }

    <span>/**</span><span>     * Deletes the model from the database.</span><span>     *</span><span>     * </span><span>@return</span><span> integer|boolean the number of rows deleted.</span><span>     * Note that it is possible that the number of rows deleted is 0, even though the deletion execution is successful.</span><span>     */</span><span>public</span><span>function</span> delete<span>()</span>
    {
        <span>$primaryKeys</span> = <span>static</span>::primaryKey<span>();</span><span>$condition</span> = <span>[];</span><span>foreach</span><span>(</span><span>$primaryKeys</span><span>as</span><span>$name</span><span>)</span> {
            <span>$condition</span><span>[</span><span>$name</span><span>]</span> = <span>isset</span><span>(</span><span>$this</span>-><span>$name</span><span>)</span><span>?</span><span>$this</span>-><span>$name</span><span>:</span><span>null</span><span>;</span>
        }

        <span>return</span><span>static</span>::deleteAll<span>(</span><span>$condition</span><span>)</span> !== <span>false</span><span>;</span>
    }</code>
로그인 후 복사

이 기본 모델은 아직은 많은 문제와 한계가 있을 수 있지만 기회가 되면 단계적으로 개선해 나가겠습니다. .

자, 오늘은 여기서 그만합시다. 프로젝트 콘텐츠와 블로그 콘텐츠도 Github에 게시될 예정이며 누구나 제안을 환영합니다.

코드: https://github.com/CraryPrimitiveMan/simple-framework/tree/0.7

블로그 프로젝트: https://github.com/CraryPrimitiveMan/create-your-own- PHP 프레임워크

위 내용은 내용의 측면을 포함하여 자신만의 PHP 프레임워크를 구현하는 모델 클래스 3의 구성을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 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를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Trezor Cold Wallet: Model One 및 Model T 기능 및 사용 가이드 Trezor Cold Wallet: Model One 및 Model T 기능 및 사용 가이드 Jan 19, 2024 pm 04:12 PM

많은 중앙화된 거래소에서 문제가 발생한 후 점점 더 많은 통화 투자자들이 중앙화된 거래소에서 발생하는 위험을 줄이기 위해 자산을 콜드 지갑으로 이전하기 시작했습니다. 이 글에서는 세계 최초의 콜드월렛 제공업체인 Trezor를 소개하겠습니다. 2014년 최초의 콜드월렛이 출시된 이후 전 세계 여러 나라에서 판매되고 있습니다. Trezor의 제품에는 2014년에 출시된 Model One과 2018년에 출시된 고급 버전인 Model T가 포함됩니다. 다음에서는 계속해서 이 두 제품과 다른 콜드월렛의 차이점을 소개하겠습니다. Trezor 콜드월렛이란 무엇인가요? 2014년 Trezor는 최초의 콜드 지갑 ModelOne을 출시했습니다. 일반적인 BTC, ETH, USDT 및 기타 통화 외에도 지갑은 1,000개 이상의 다른 통화도 지원합니다.

C 언어에서 static의 기능과 사용법은 무엇입니까? C 언어에서 static의 기능과 사용법은 무엇입니까? Jan 31, 2024 pm 01:59 PM

C 언어에서 정적의 역할 및 사용법: 1. 변수 범위, 3. 내부 함수, 5. 함수 수정, 1. 변수 범위, 변수 앞에 static 키워드가 있는 경우 변수의 범위는 변수가 선언된 파일로 제한됩니다. 즉, 변수는 "파일 수준 범위"이므로 " 중복 정의" 변수 문제 2. 수명주기, 정적 변수는 프로그램 실행을 시작할 때 한 번 초기화되고 프로그램이 끝나면 소멸됩니다.

Java에서 static, this, super 및 final을 사용하는 방법 Java에서 static, this, super 및 final을 사용하는 방법 Apr 18, 2023 pm 03:40 PM

1. static 먼저 다음 프로그램을 살펴보십시오. publicclassHello{publicstaticvoidmain(String[]args){//(1)System.out.println("Hello, world!");//(2)}} 이것을 보았습니다. 세그먼트 프로그램은 Java를 공부한 대부분의 사람들에게 친숙합니다. Java를 배우지 않았지만 C 등 다른 고급 언어를 배웠더라도 이 코드의 의미를 이해할 수 있어야 합니다. 단순히 "Hello, world"를 출력하고 다른 용도는 없습니다. 그러나 정적 키워드의 주요 목적을 보여줍니다.

Django 프레임워크의 모델에 대한 자세한 설명 Django 프레임워크의 모델에 대한 자세한 설명 Jun 17, 2023 am 08:48 AM

Django는 오픈 소스 Python 웹 프레임워크로 MVT(Model-View-Template) 아키텍처 패턴을 채택하고 애플리케이션을 모델, 뷰 및 템플릿의 세 부분으로 나눕니다. 그 중 Model은 Django 프레임워크의 기본 구성 요소로 데이터를 정의하고 관리하는 데 사용됩니다. 이 글에서는 Django 프레임워크의 Model에 대해 자세히 설명합니다. Django의 모델이란 무엇입니까?

정적의 역할 정적의 역할 Jan 24, 2024 pm 04:08 PM

정적 기능: 1. 변수 3. 클래스 4. 기타 용도 6. 싱글톤 모드 9. 로컬 변수 메모리 레이아웃 최적화; 11. 반복적인 초기화를 피하십시오. 12. 함수에 사용하십시오. 자세한 소개: 1. 변수, 정적 변수. 변수가 정적으로 선언되면 인스턴스 수준이 아닌 클래스 수준에 속합니다. 즉, 개체 수에 관계없이 정적 변수는 하나만 존재하며 모든 개체가 존재합니다. 이 정적 변수 등을 공유하십시오.

C 언어의 static 키워드의 실제 적용 시나리오 및 사용 기술 C 언어의 static 키워드의 실제 적용 시나리오 및 사용 기술 Feb 21, 2024 pm 07:21 PM

C 언어 static 키워드의 실제 응용 시나리오 및 활용 기술 1. 개요 static은 C 언어에서 변수와 함수를 수정하는 데 사용되는 키워드입니다. 그 기능은 프로그램 실행 중에 수명 주기와 가시성을 변경하여 변수와 함수를 정적으로 만드는 것입니다. 이 기사에서는 static 키워드의 실제 응용 시나리오와 사용 기술을 소개하고 구체적인 코드 예제를 통해 설명합니다. 2. 정적 변수는 변수의 수명 주기를 연장합니다. static 키워드를 사용하여 지역 변수를 수정하면 수명 주기가 연장됩니다.

PHP의 정적 메소드는 무엇입니까? PHP의 정적 메소드는 무엇입니까? Oct 31, 2022 am 09:40 AM

PHP 정적 정적 메서드의 "정적"은 클래스를 인스턴스화하지 않고도 이러한 속성과 메서드를 직접 호출할 수 있음을 의미합니다. static은 클래스의 속성과 메서드를 수정하는 데 사용되는 키워드이며 사용 구문은 "class Foo { 공개 정적 $my_static = 'hello';}".

Springboot가 사용자 정의 프로 파일을 읽고 정적 변수를 주입하는 방법 Springboot가 사용자 정의 프로 파일을 읽고 정적 변수를 주입하는 방법 May 30, 2023 am 09:07 AM

Springboot는 pro 파일을 읽고 정적 정적 변수 mailConfig.properties#Server mail.host=smtp.qq.com#포트 번호 mail.port=587#이메일 계정 mail.userName=hzy_daybreak_lc@foxmail.com#이메일 인증 코드 메일을 주입합니다. passWord =vxbkycyjkceocbdc#시간 지연 mail.timeout=25000#Sender mail.emailForm=hzy_daybreak_lc@foxmail.com#Sender mai

See all articles