참을성이 없는 PHP
저는 항상 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();
}
Reference
이 문제에 관하여(참을성이 없는 PHP), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/beanworks/php-for-the-impatient-2j54텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)