PHP — . PHP, {lang_name}
. - .
PHP . . . " — — — " .
PHP . , backend , . . . , .
. . , , . " " " ". , .
1.
. JavaScript .
let str = "1,2,3"; let arr = str.split(","); arr = arr.map(_ => _ * 2); console.log(arr); // [2, 4, 6]
, , , ..
JavaScript, , , . , String
, .
PHP - ?
$str = '1,2,3'; $arr = $str->explode(','); $arr = $arr->map(function ($i) { return $i * 2; }); var_dump($arr); // : $str = '1,2,3'; $arr = $str ->explode(',') ->map(function ($i) { return $i * 2; }); var_dump($arr);
, String
Array
. .
$arr->keyExists(...); $arr->map(...); $arr->filter(...); $arr->keys(...); $arr->push(...); $arr->pop(...); $arr->exists(...); // in_array $str->repeat(...); $str->join(...); $str->trim(...); $str->replace(...);
: . ? , is_iterable
, is_numeric
, is_countable
, c instanceof
\Countable
, \Traversable
.. ?
2.
, Java. . DI , , :
$service = $container->get<SomeService>();
, (Yii2 Query Doctrine).
, , type hinting ( ). , :
public function getItems(): Array<Item> public function setItems(Array<Item>): void
, ? , , IDE , PHPDoc . , :
public function getItems(): Collection<Item> public function setItems(Collection<Item>): void
PHPDoc (SomeObject[]
), . , , ( array
, ).
3.
Java 1.6 ( ). . (Java , , - )
JavaScript — ( , , Babel).
PHP? PHP PHPDoc , . , . , Doctrine PHP-DI.
, Symfony Event Dispatcher. -, , getSubscribedEvents
, , — , — , . . , . ? . - , , -, getSubscribedEvents
, (), () . , - , , . . , -, IDE ( — , IDE). .
, :
@EventSubscriber(ItemEvents::CREATE) public function itemCreated(ItemEvent $event)
, . , , . . : - , , .
IDE, . , , namespace'.
, . , , ...
4. .
JavaScript (, ..) :
$input = [...]; $output = []; foreach ($input as $i => $item) { // logic $output[$i] = $item; }
ReactJS + Redux :
let output = input.map(item => { // logic return item; });
, PHP:
$output = array_map(function($item) { // logic return $item; }, $input);
:
$output = $input->map(($item) => { // logic return $item; });
, PHP -, function($item) {}
- . , - ( JS). , . . RFC. , ?
5.
. JavaScript Promise. , .
PHP , , . HTTP . , , , . , Slack Mailgun . HTTP . , ? . .
PThreads, ? , , .
6.
:
class Money { __constuct($currency = new Currency('RUB')) {...} }
:
class Money { private $currency = new Currency('RUB'); public function setCurrency(Currency $currency) {...} }
, , .
, , - , :
class Money { private $currency; __constuct(Currency $currency = null) { $this->currency = $currency ?? new Currency('RUB'); } }
. :
public function someMethod($value = $this->defaultValue): void public $statuses = SomeClass::getStatuses();
.
7.
, (1) , (2) . , PHP . . , . , , PHP .
8. function
function
.
public function someMethod() // public someMethod()
. , PHP, Java JavaScript, . , ? . , , . , 9 , . , .
9.
, , . , PHP , , .. : , " ", . !
, , , ( Array::method()
), deprecated
. !
, PHP , , .. (json_encode -> Json::encode
, cUrl
).
- , , , , , Codesniffer … . , . , , .
, ( ) , . . , . . , PHP , .
, , , , . ?) , , , . , .
. . , . , Java. . , .
PHP?