찾다
헤드라인다른 PHP를 작성하는 방법은 무엇입니까?

다른 PHP를 작성하는 방법은 무엇입니까?

PHP는 개발 세계에서 가장 많이 논의되는 프로그래밍 언어 중 하나입니다. 어떤 사람들은 그것을 비효율적인 프로그래밍 언어라고 부르고, 어떤 사람들은 관습이나 아키텍처가 없는 성가신 프로그래밍 언어라고 부르며, 나는 그 중 일부에 정당한 요점이 있기 때문에 동의합니다. 그러나 여기서는 수년에 걸쳐 PHP를 사용하여 프로그래밍한 경험을 공유하겠습니다. 이러한 트릭 중 일부는 최신 PHP 버전에서만 사용할 수 있으므로 이전 버전에서는 작동하지 않을 수 있습니다.

유형 힌트 및 반환 유형

PHP는 데이터 유형에 관한 한 완벽한 언어는 아니지만 유형 힌트와 반환 유형을 사용하여 코드를 개선할 수 있습니다. 품질을 향상하고 추가 유형 충돌을 방지합니다. PHP의 이러한 기능을 사용하는 사람은 많지 않으며 모든 PHP 프로그래머가 이것이 가능하다는 것을 아는 것은 아닙니다.

<?php
function greet_user(User $user, int $age): void {
    echo "Hello" . $user->first_name . " " . $user->last_name;
    echo "\nYou are " . $age . " years old";
}

매개변수 변수 앞에는 유형의 이름이나 클래스를, 콜론 뒤에는 함수 서명 뒤에 반환 유형을 사용하여 유형 힌트를 선언할 수 있습니다.

Laravel과 같은 프레임워크에서 컨트롤러를 설계할 때 이를 보다 고급 방식으로 사용할 수 있습니다.

<?php
class UserController extends Controller
{
    // User sign up controller
    public function signUp(Request $request): JsonResponse
    {
        // Validate data
        $request->validate([
            &#39;plateNumber&#39; => &#39;required|alpha_num|min:3|max:20|unique:users,plate_number&#39;,
            &#39;email&#39; => &#39;required|email|unique:users&#39;,
            &#39;firstName&#39; => &#39;required|alpha&#39;,
            &#39;lastName&#39; => &#39;required|alpha&#39;,
            &#39;password&#39; => &#39;required|min:8&#39;,
            &#39;phone&#39; => &#39;required|numeric|unique:users&#39;
        ]);
        // Create user
        $new_user = new User;
        $new_user->plate_number = trim(strtoupper($request->input(&#39;plateNumber&#39;)));
        $new_user->email = trim($request->input(&#39;email&#39;));
        $new_user->first_name = trim($request->input(&#39;firstName&#39;));
        $new_user->last_name = trim($request->input(&#39;lastName&#39;));
        $new_user->password = Hash::make($request->input(&#39;password&#39;));
        $new_user->phone = trim($request->input(&#39;phone&#39;));
        $new_user->save();
        return response()->json([
            &#39;success&#39; => true,
        ]);
    }
}

삼항 연산자

삼항 연산자 거의 70%의 프로그래머가 알고 광범위하게 사용하는 것이지만 삼항 연산자가 무엇인지 모르는 경우 다음 예를 참조하세요.

<?php
$age = 17;
if($age >= 18) {
    $type = &#39;adult&#39;;
} else {
    $type = &#39;not adult&#39;;
}

삼항 연산자를 사용할 수 있습니다. 표기법을 사용하면 이를 단순화할 수 있습니다.

<?php
$age = 17;
$type = $age >= 18 ? &#39;adult&#39; : &#39;not adult&#39;;

조건이 충족되면 두 번째 부분은 변수에 할당되지 않습니다.

조건이 참값으로 평가되면 해당 값을 사용하려는 경우 더 짧은 방법도 있습니다.

<?php
$url = &#39;http://example.com/api&#39;;
$base_url = $url ? $url : &#39;http://localhost&#39;;

$url은 보시다시피 조건과 조건이 참인 경우 결과로 모두 사용됩니다. 이 경우 왼쪽 피연산자를 이스케이프할 수 있습니다.

<?php
$url = &#39;http://example.com/api&#39;;
$base_url = $url ?: &#39;http://localhost&#39;;

Null 병합 연산자

삼항 연산자와 마찬가지로 Null 병합 연산자를 사용하여 다음을 수행할 수 있습니다. 값이 존재하는지 확인하세요. false 자체가 값이므로 기존 값은 오류 값과 다릅니다.

<?php
$base_url = $url ?? &#39;http://localhost&#39;;

이제 $base_url은 http://localhost와 동일하지만 $url을 false로 정의하면 $base_url 변수는 false와 같습니다.

<?php
$url = false;
$base_url = $url ?? &#39;http://localhost&#39;;

이 연산자를 사용하면 변수가 이전에 정의되었는지, 값이 할당되지 않았는지 확인할 수 있습니다.

<?php
$base_url = &#39;http://example.com&#39;;
$base_url = $base_url ?? &#39;http://localhost&#39;;

Null 병합 할당을 사용하여 변수를 단축할 수 있습니다. 연산자 이 코드

<?php
$base_url = &#39;http://example.com&#39;;
$base_url ??= &#39;http://localhost&#39;;

이 모든 기본 병합 기술은 배열 값에 구현될 수 있습니다.

<?php
$my_array = [
    &#39;first_name&#39; => &#39;Adnan&#39;,
    &#39;last_name&#39; => &#39;Babakan&#39;
];
$my_array[&#39;first_name&#39;] ??= &#39;John&#39;;
$my_array[&#39;age&#39;] ??= 20;

위 배열은 이미 정의되어 있으므로 first_nameas인 Adnan을 가지지만 age라는 새 키를 정의하고 존재하지 않기 때문에 숫자 20을 부여합니다.

우주선 연산자

우주선 연산자는 한쪽이 더 큰지 여부만 아는 것보다 어떤 피연산자가 더 큰지 알고 싶을 때 유용합니다.

우주선 연산자는 왼쪽 피연산자가 더 큰 경우, 두 피연산자가 같을 경우, 오른쪽 피연산자가 각각 더 큰 경우 1, 0 또는 -1 값을 반환합니다.

<?php
echo 5 <=> 3; // result: 1
echo -7 <=> -7; // result: 0
echo 9 <=> 15; // result: -1

간단하지만 매우 유용합니다.

우주선 운영자가 다른 것도 비교할 수 있다는 사실을 알면 더욱 흥미로워집니다.

<?php
// String
echo &#39;c&#39; <=> &#39;b&#39;; // result: -1
// String case
echo &#39;A&#39; <=> &#39;a&#39;; // result: 1
// Array
echo [5, 6] <=> [2, 7]; // result: 1

화살표 기능

특히 최신 버전을 사용하여 JavaScript 애플리케이션을 작성했다면 화살표 기능에 익숙해야 합니다. 화살표 함수는 범위 없이 함수를 정의하는 더 짧은 방법입니다.

<?php
$pi = 3.14;
$sphere_volume = function($r) {
    return 4 / 3 * $pi * ($r ** 3);
};
echo $sphere_volume(5);

위 코드는 $pi가 이 특정 함수의 범위 내에서 정의된 변수가 아니기 때문에 오류를 발생시킵니다. 이를 사용하려면 함수를 약간 변경해야 합니다.

<?php
$pi = 3.14;
$sphere_volume = function($r) use ($pi) {
    return 4 / 3 * $pi * ($r ** 3);
};
echo $sphere_volume(5);

이제 함수는 전역 범위에 정의된 $pi 변수를 사용할 수 있습니다.

하지만 이러한 작업을 수행하는 더 짧은 방법은 화살표 기능을 사용하는 것입니다.

<?php
$pi = 3.14;
$sphere_volume = fn($r) => 4 / 3 * $pi * ($r ** 3);
echo $sphere_volume(5);

보시다시피 매우 간단하고 깔끔하며 기본적으로 전역 범위에 액세스할 수 있습니다.

추천 튜토리얼: "PHP"

성명
이 기사는 dev에서 복제됩니다. 침해가 있는 경우 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. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기