참을성이 없는 PHP

11971 단어
우리는 주로 여기 Beanworks에서 엔지니어링 팀의 약 절반을 위한 PHP 상점입니다. PHP는 나쁜 평판을 받는 경향이 있지만 PHP 7(및 잠재적으로 PHP 8)에서는 단순함을 유지하면서 실제로 성숙하고 강력한 언어가 되었습니다.

저는 항상 PHP 경험이 없는 새로운 엔지니어들에게 어떤 언어로든 코드를 작성할 수 있다면 PHP를 매우 빨리 배울 수 있다고 말합니다.

이 기사에서는 일부 PHP 구문을 탐색하고 이를 Javascript 또는 Typescript와 비교할 것입니다.

구문이 동일한 항목에 🔁 아이콘을 추가했습니다.

기본 구문



변수



PHP 랜드에서 모든 변수는 달러 기호로 시작해야 합니다$.

PHP


$foo = 'bar';

노드JS


let foo = 'bar';

템플릿 리터럴



문자열이 큰따옴표( " )로 묶인 한 문자열에서 변수를 사용할 수 있습니다. 작은따옴표로 묶인 문자열은 변수를 평가하지 않습니다.

PHP



$str = "My name is {$name}"

노드J



let str = `My name is ${name}`

상수 🔁



PHP에는 실제 상수가 있으므로 대문자로 표시해야 하지만 그렇지 않으면 구문이 실제로 동일합니다.

PHP


const FOO = 'bar';

노드JS


const FOO = 'bar';

배열



PHP



$arr = ['a', 'b'];

// you can iterate using foreach
foreach ($arr as $element) {
  ...
}


노드JS



let arr = ['a', 'b'];

// you can iterate using for ... of
for (let element of arr) {
  ...
}



사물



PHP 나라에서 객체는 배열, 연관 배열일 뿐입니다. : 를 사용하는 대신 double arrow => 를 사용해야 합니다.

PHP



$myFavouriteVehicles = [
  'Toyota' => ['4Runner','Tacoma'],
  'Ford' => ['Bronco']
];

$fordVehicles = $myFavouriteVehicles['Ford'];

// you can iterate key => value using foreach
foreach ($myFavouriteVehicles as $brand => $vehicles) {
   ...
}

자바스크립트



let myFavouriteVehicles = {
  'Toyota': ['4Runner','Tacoma'],
  'Ford': ['Bronco']
}

let fordVehicles = myFavouriteVehicles['Bronco'];

// you can iterate key value with Object.entries
for (let [brand, vehicles] of Object.entries(myFavouriteVehicles)) {
  ...
}

콜백 함수



대부분의 PHP 영역에서 ES5에서 했던 것처럼 여전히 콜백 기능을 작성해야 합니다. 화살표 기능은 최근에 PHP7.4에서 지원됩니다.

PHP 🔁



array_map(function($element) {...}, $arr);

// or in PHP 7.4+ you can use arrow function, no multi line though
array_map(fn($element) => ..., $arr)

노드JS



arr.map(function (element) {...});

// Arrow function since ES6
arr.map(element => ...);

클래스 및 상속



PHP는 클래스와 인터페이스를 확장하는 동일한 구문을 사용합니다.

PHP 🔁


class Foo extends Bar implements FooBarInterface

타이프스크립트


class Foo extends Bar implements FooBarInterface

유형 시스템



대중적인 믿음과 달리 PHP에는 다른 OOP 언어와 유사하게 작동하는 유형 시스템이 있으며 PHP의 새 버전이 나올 때마다 유형 시스템이 개선되고 있습니다.

PHP



public function writeLine (string content, LineWriter $writer) : string {
    return content;
}

타이프스크립트



public writeLine( content : string, lineWriter lineWriter) : string {
    return content;
}

메서드 호출



메소드를 호출하려면 PHP에서 점 대신 ->를 사용해야 합니다.

PHP


$logger->log('PHP uses ->');

노드J


logger.log('Node uses .');

발전기 🔁


yield 키워드를 사용하려는 경우 함수 서명에 특별한 구문이 없습니다.

PHP



public function getLaptopBrands() : Iterator {
  yield 'Lenovo';
  yield 'Asus';
  yield 'Dell';
}

타입스크립트



public function* getLaptopBrands() : IterableIterator<string> {
  yield 'Lenovo';
  yield 'Asus';
  yield 'Dell';
}

발전기의 수율



PHP에서는 yield from 구문을 사용하여 생성기에서 생성할 수 있습니다.

PHP



public function getComputerBrands() : Iterator {
  yield from getLaptopBrands();
  yield from getDesktopBrands();
}

타입스크립트



public function* getLaptopBrands() : IterableIterator<string> {
  yield* getLaptopBrands();
  yield* getDesktopBrands();
}

좋은 웹페이지 즐겨찾기