? ??? ???? ?? ???? ?? ?? ?? ????.
? ???? 1?? ?? ???? ??? ??????? ???? ??? ??? ?? ??????.1
??? ??2? ? ???? ???(??? UTF-8 ??? ??? ???)? ?????.3 ?? ??? ????.
1 1
//article[@title="foobar"]//image
.items[].foo|select(.bar = "foo")
a.comments > 1 and a.category not in ["misc"]
?? ??(?? DSL4)? ?? ??? ????.
- JQ
- Kibana ?? ??
- XPath ??
- ??? ?? ??
???? ?? ??? ??? ??? ?????? ? ? ?? ?? ????? ????! ? ?, ? ?, ??? ??? ???? ????. 1?? ????? ? ??? ??? ??????!5
ProCalc2000
??? 2000? ??? ?? ??? ???? ?? ???? ProCalc2000 ??? ??? ??? ????.
1 1
, 1 2
?? ???? ???? 1 3 2 / 2
?? ?? ??? ??? ? ????.
???
Godzilla? ?? ??? ??? ?? ???? ?????.??? ??(?: 1, 2)? ???( , -, )? ?????. ??? ????(?? I ??)? ???? ???? ????*.
????? ???? ??, ??, ??? ???, ???, ??? ??, ??? (Godzilla? ??? ???) ??? ?? ??? ???? ?? ??? ?????.
One?? ??? ??????
??? ???? ???? ??? ?? ??? ??? ???? ?????, ?? ? ???? ???????.
<code> +-----------+ tokens +--------+ ast +-----------+ EXPRESSION ==>| Tokenizer |--------->| Parser |------>| Evaluator | => VALUE +-----------+ +--------+ +-----------+</code>
?????
?? ?? ?????? ???. ? ???? ???? ????? ??? ???? ????.
class Tokenizer { public function tokenize(string $expression): Tokens { // ... } }
?? ?? 1 2 3
? 5?? ??? ?????.
<code>Token(Integer, 1) Token(Plus) Token(Integer, 2) Token(Plus) Token(Integer, 3)</code>
?????? ???? ????? ???? ?? ??? , - ? * ???? ?? ???? ???? ?????. ??? ?????. ?? ??? ??? ??????. ?? ??? ??, ???, ??, ??????.
???
Godzilla? ?????? ?? ??? ????? Godzilla? ??? ?? ?? ??? ??? ???? ???????.?????? ???? ???? ???? ????. ??? ?????.6 ??? ??? ?????.
??
??? ??? ???? AST(?? ?? ??)? ?????.
<code> +-----------+ tokens +--------+ ast +-----------+ EXPRESSION ==>| Tokenizer |--------->| Parser |------>| Evaluator | => VALUE +-----------+ +--------+ +-----------+</code>
?? ??? ???? ??? ??? ?? ??? AST? ?????. ? ??? ?? ??? ??????. ?? ??? BinaryOp ? Integer???.
?? ???? ? ?? ????? ????(?:
foo or bar
?BinaryOp(Variable('foo'), 'or', Variable('bar'))
? ? ??).?? ???? ????? ?? ????(?:
-1
).?? ???? ? ?? ????? ????(?:
foo ? bar : baz
).
1 1 / 5
????
???? ???? BinaryOp???. ???? ? ??? 1?? ?? ??? ? ?? BinaryOp(1 / 5
)???.
class Tokenizer { public function tokenize(string $expression): Tokens { // ... } }
???
???? ??? ???? ?(???? ??)? ?????. ??????????.
<code>Token(Integer, 1) Token(Plus) Token(Integer, 2) Token(Plus) Token(Integer, 3)</code>
??? ?????
? ??? ?? ???(???? ???)? ?? ??? PHPSW ???? ???????. ???? ?????.
???
Godzilla? ? ??? ?? ?? ????? ?????.?????
? ??, Token
???? ??? ?? ?? TokenType
???:
class Parser { public function parse(Tokens $tokens): Node { // ... } }
<code> +-------------+ | Binary Op + | <p>In PHP:</p> ```php $ast = new BinaryOp( left: new Integer(1), operator: '+', right: new BinaryOp( left: new Integer(1), operator: '/', right: new Integer(5), ) );</code>
??? ??? ????.
class Evaluator { public function evaluate(Node $node): int { // ... } }
Tokenizer
???? ??? ?????.7
class Token { public function __construct( public TokenType $type, public ?string $value = null ) {} }
Tokens
???:
enum TokenType { case Plus; case Minus; case Multiply; case Integer; }
???
Godzilla? ???? ?? ??? ??? ???? ?? ??? 'array_shift' ?? ???? ?????.??
[ new Token(TokenType::Integer, 50), new Token(TokenType::Plus), // ... ]
??? ??? ?? ??, ??? ?? ?? ? ??? ???? ?????. ?? ?? ??? ?? ??? "5??"? ?? ??? ?????.
???
class Tokenizer { public function tokenize(string $expression): Tokens { $offset = 0; $tokens = []; while (isset($expression[$offset])) { $char = $expression[$offset++]; if (is_numeric($char)) { while (is_numeric($expression[$offset] ?? null)) { $char .= $expression[$offset++]; } $tokens[] = new Token(TokenType::Integer, $char); continue; } $token = match ($char) { '+' => new Token(TokenType::Plus), '-' => new Token(TokenType::Minus), '*' => new Token(TokenType::Multiply), ' ' => null, default => throw new RuntimeException(sprintf( 'Invalid operator: "%s"', $char )), }; if ($token === null) { continue; } $tokens[] = $token; } return new Tokens($tokens); } }
?? ????
? ??? ???? ???? ??? ???????. ?? ??? ????? ??? ? ????.
??? ????
1 * 3 4
???? (1 * 3) 4 = 7
??? ???, ?? ?? ???? ?? ?? ????? ?? 1 * (3 4) = 7
?? ?????.8 Pratt ??? ?? ?????.
<code> +-----------+ tokens +--------+ ast +-----------+ EXPRESSION ==>| Tokenizer |--------->| Parser |------>| Evaluator | => VALUE +-----------+ +--------+ +-----------+</code>
???
Godzilla? ??? ?????.?? ??
- ??? ???: Robert Nystrom? ?(?? ? ?? ??)
- ??? ??? ?? ??: Robert Nystrom? ??? ???
- ?? ?? RPN ???: 2014 Igor Wiedler ??
- ?? ??
- PHPstan Phpdoc ??9
- ??? ??? ??? ?????.
- ? ????? ??? ?? ?? ??????.
- PHP??? ???? ?? ?????.
- ???? ??.
- ??? ????.
- ?????? ?? ??? ?????.
-
preg_
??? ? ???? ? ????. - ?? ??? ???? ???? ?? ?????.
- Doctrine? ?? ??? ?? ?? ??? ???????.
? ??? ? ?? ?? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











TOSECURELYHANDLEAUSTENCENDACTIONANDACTERIZINGINPHP, FORCUCTSESTEPS : 1. ALWAYSHASHPASSWORTHPASSWORD_HASH () ? VERVERIFYUSINGPANSWORD_VERIFY (), usePREPAREDSTATEMENTSTOPREVENTSQLINGERGED, andSTOREUSERSESSEATAIN $ _SESSIONSAFTERLOGIN.2.impleplempletrole ?? ACCESSC

PHP?? ?? ???? ???? ????? ??? ?? ??? ???? ?? ??? ??? ??? ???? ????. 1. finfo_file ()? ???? ?? ?? ??? ???? ???/jpeg? ?? ?? ?? ? ?????. 2. uniqid ()? ???? ??? ?? ??? ???? ? Web ?? ????? ??????. 3. php.ini ? html ??? ?? ?? ??? ???? ???? ??? 0755? ?????. 4. Clamav? ???? ???? ???? ??? ??????. ??? ??? ?? ???? ????? ???? ?? ??? ????? ???? ??? ? ??? ?????.

PHP?? ==? ==? ?? ???? ?? ??? ??????. == ?? ??? ?? ?? ?????. ?? ??, 5 == "5"? true? ????, ?? ??? ???? ?? ?? ??? ????? ????? (? : 5 === "5"? false? ?????. ?? ?????? ===? ? ???? ?? ?????? == ?? ??? ??? ???? ?????.

PHP?? ?? ??? ??? ???? ??? ??? ????. 1. ?? ??? ?? ? ?? ??? ??? ???? ???? ??? ? ????. ??? ??? ???? ????? ????? ???? ????. 2. ?? ?? ?? - ??, ??? ???? ?? ??? ?????. 3. ?? ???? ??? ??? ???? ??? ??? ?????. 4. Division? / ??? ???? 0?? ??? ?? ????? ??? ?? ??? ?? ? ? ????. 5. ???? ??? ???? ?? ?? ? ?? ??? ???? ? ??? ? ???, ??? ?? ? ? ??? ??? ???? ?????. ? ???? ???? ???? ??? ??? ??? ???? ?? ??? ? ??????? ????.

?, PHP? ?? ?? ?? ?????? ?? MongoDB ? Redis? ?? NOSQL ??????? ?? ??? ? ????. ?? MongoDBPHP ???? (PECL ?? Composer? ?? ??)? ???? ????? ????? ??? ?????? ? ???? ????? ??, ??, ?? ? ?? ??? ?????. ??, Predis ????? ?? Phpredis ??? ???? Redis? ???? ?? ? ?? ? ??? ???? ??? ????? Phpredis? ???? ?? Predis? ?? ??? ?????. ? ? ?? ??? ???? ? ????? ????.

tostaycurrentwithphpdevelopments ? bestpractices, followkeynewssources lifephp.netandphpweekly, adgytwithcommunitiesonforumsandconferences, readlingupdated andgrad indewfeatures, andreadorcontributetoopensourceproceprosts.first

phpbecamepupularforwebdevelopmentduetoiteofleneflening, whithhtml, wididepreadhostingsupport, andalargeecosystemincludingframeworkslikelaravelandcmsplatformsformslikewordpress.itexcelsinhandlingformsubmissions, managingussess, interptisussivers, ?? ???

TOSETTHERIGHTTIMEZONEINPHP, usedate_default_timezone_set () functionattStartOfyourscriptwitHavalidInlifiersuchas'America/new_york'.1.edate_default_timezone_set () beforeanydate/timeFunctions.2
