-
? ??? ?? ??? ? ??? ???? ?? ?? ???? ?? ?? ???? ? ???? ??? ?? ????? ???? ? ??????.
-
??? ??? ?? ??? ?? ??? ??? ??? ??? ?? ??? ??? ? ??? ???? ??? ?? ?? ??? ? ?????. - ?? ?? ?? ?? ?? - ?? ? ????? ??? ??
-
? ?? ??? ?? ?? ?? ?? ????? ?? ???? "??"?? ??? ????? ??? ???? ?? ???. ??? ?? ?? ????? ???? ?? ???? ???? ??? ?? ??? ?? ?? ? ?? ????? ??? ??????. ??? ??? ??? ???? ???? ?? ???? ??? ? ?? ?? ??? ??????. ??? ?? ??? ???? ?? ?? ??? ?? ?? ?? ??? ???? ????? ??? ??? ??? ???? ??????? ?????. ????? ???,? ??? ??? ??? ??????? ? ?? ?? ??? ? ???? ?? ??? ?? ?? ? ? ????. ? ?? ??? ???? ??? ??? ????. ??? ???? ????? ??? ???, ?? ?? ??? ??? ???? ??? ???? ? ????. ???? ??????. ?? ?? ??? ??? ??? ??? ???? ???? ???? ??? ?? ???? ??? ???. ?? ? ??? ??? ???? <?php namespace Model; interface PostInterface { public function setId($id); public function getId(); public function setTitle($title); public function getTitle(); public function setContent($content); public function getContent(); public function setComment(CommentInterface $comment); public function setComments(array $comments); public function getComments(); }
<?php namespace Model; class Post implements PostInterface { protected $id; protected $title; protected $content; protected $comments = array(); public function __construct($title, $content, array $comments = array()) { $this->setTitle($title); $this->setContent($content); if (!empty($comments)) { $this->setComments($comments); } } public function setId($id) { if ($this->id !== null) { throw new BadMethodCallException( "The ID for this post has been set already."); } if (!is_int($id) || $id throw new InvalidArgumentException( "The post ID is invalid."); } $this->id = $id; return $this; } public function getId() { return $this->id; } public function setTitle($title) { if (!is_string($title) || strlen($title) || strlen($title) > 100) { throw new InvalidArgumentException( "The post title is invalid."); } $this->title = htmlspecialchars(trim($title), ENT_QUOTES); return $this; } public function getTitle() { return $this->title; } public function setContent($content) { if (!is_string($content) || strlen($content) throw new InvalidArgumentException( "The post content is invalid."); } $this->content = htmlspecialchars(trim($content), ENT_QUOTES); return $this; } public function getContent() { return $this->content; } public function setComment(CommentInterface $comment) { $this->comments[] = $comment; return $this; } public function setComments(array $comments) { foreach ($comments as $comment) { $this->setComment($comment); } return $this; } public function getComments() { return $this->comments; } }
?????, ?? ???? ?????. ??? ??? ? ?????? ??? ??? ? ????. ?? ?? : ??? ??? ???? ??????! ? ??? ???? ?? ?? ??? ??? ??? ?? ?? ???? ????? ??? ??? ???????. ?, ??? ???? ??????. ??, ????, ??? ??? ??? ? ??? ? ????! ?? ?? ?? ??? ??? ???????? ??? ???? ?? ??? ??? ? ??? ?? ?????? ?? ???????. ??? ? ??? ??? ??? ???? setid () ? setContent ()? ?? ?? ??? ?? ??? ???? ??? ?????. ?? ??? ??? ??? ??? ????? ???? ?? ?????? ????? ????. ??, ??? ?? ?? ?? ??? ??? ??? ? ???? ??? ?? ??? ??? ??????. ??, ?? ?????? ????? "IS-A"??? ?? ????? ?? ??? ?? ??? ??? ?? ??? ?????? ???? ?? ?????. ??? ??, ????? ??? ?? ??? ??? ???? ??? ?? ???? ??? ?? ??? ?? ???? ?? ? ? ????. ???????, ?? ???? ?? ?? ?? ??? ???? ?? ?? ????? ?? ??? ??? ?? ??????. ?? ??? ????? ??? ????? ???? ??? ??? ???? ... ?, ? ?? ???? ?????. ????? ??? <?php namespace Model; interface CommentInterface { public function setId($id); public function getId(); public function setContent($content); public function getContent(); public function setAuthor($author); public function getAuthor(); }
<?php namespace Model; class Comment implements CommentInterface { protected $id; protected $content; protected $author; public function __construct($content, $author) { $this->setContent($content); $this->setAuthor($author); } public function setId($id) { if ($this->id !== null) { throw new BadMethodCallException( "The ID for this comment has been set already."); } if (!is_int($id) || $id throw new InvalidArgumentException( "The comment ID is invalid."); } $this->id = $id; return $this; } public function getId() { return $this->id; } public function setContent($content) { if (!is_string($content) || strlen($content) throw new InvalidArgumentException( "The content of the comment is invalid."); } $this->content = htmlspecialchars(trim($content), ENT_QUOTES); return $this; } public function getContent() { return $this->content; } public function setAuthor($author) { if (!is_string($author) || strlen($author) throw new InvalidArgumentException( "The author is invalid."); } $this->author = $author; return $this; } public function getAuthor() { return $this->author; } }
<<> (?? ???? ?? ??? ??? ??? ??? ?????. ?? ???? ?? ??? ?? ?? ??? ???? ????? ?? ?? ???? ????. ?? ????? ??? ????. ? ??> ???? ??? ?? ? ??> ????? ?? ??? ???? ?? ???? ??? ?? ???? ?????? ? ??> <<> ??
<?php use LibraryLoaderAutoloader, ModelPost, ModelComment; require_once __DIR__ . "/Library/Loader/Autoloader.php"; $autoloader = new Autoloader; $autoloader->register(); $post = new Post( "A sample post.", "This is the content of the post." ); $post->setComments(array( new Comment( "One banal comment for the previous post.", "A fictional commenter"), new Comment( "Yet another banal comment for the previous post.", "A fictional commenter") )); echo $post->getTitle() . " " . $post->getContent() . "<br></br>"; foreach ($post->getComments() as $comment) { echo $comment->getContent() . " " . $comment->getAuthor() . "<br></br>"; }
??? ?? ?? ?? ? ??? ?????? ?????, ?? ??? ??? ????? ???? ??? ? ??? ??? ?? ? ? ???? ??? ?????? ??? ?? ???? ??? ????. Layer SuperType? ?? ??? ??? ???? ??? ?? ??? ??? ???? ??? ???? ?? ??? ?? ? ???? ?? ???? ??? ????.
? ??? ??? ?? ?? ?? : ?? ?? ????? ?? ?? ???? ?? ?????. ??? ??? 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)

PHP ?? ??? ?? ???? ?? ? ????? ??? ?????. 1. ?? ??? ??? ??? ??? ? ? ??? ??? ??? ?? ?? ??? ???? ???????. 2. ?? ??? ???? ???? ? ?? ????? ?? ?? ?? ??? ?????. 3. $ _get ? $ _post? ?? Hyperglobal ??? ?? ???? ?? ??? ? ??? ??? ??????? ???????. 4. ?? ?? ?? ???? ?? ?? ?? ??? ?????? ?? ??? ??? ?? ??? ???????. ??? ??? ????? ??? ??? ?? ???? ????? ? ??? ? ? ????.

PHP ?? ???? ???? ????? ?? ? ??? ???? ?? ?? ? ??? ???? ?? ??? ?????? ??? ??? ? ? ???????. 1. ??? ?? CSRF? ???? ?? ??? ??? ???? ?????? ??? ???? FINFO_FILE? ?? ?? MIME ??? ?????. 2. ??? ??? ??? ???? ??? ?? ??? ?? ? WEB ????? ??? ???? ??????. 3. PHP ?? ??? ?? ? ?? ???? NGINX/APACHE? ??? ????? ?? ???? ?????. 4. GD ?????? ??? ? ?? ???? ??? ?? ??? ?? ????.

PHP ?? ???? ? ?? ???? ??? ????. 1. // ?? #? ???? ? ?? ??? ???? // ???? ?? ????. 2. ?? /.../ ?? ?? ?? ??? ????? ?? ? ?? ??? ?? ? ? ????. 3. ?? ?? ?? / if () {} /? ?? ?? ??? ????? ??? ?? ?? ?? ??? ???? ????? ???? ??? ?? ???? ???? ??? ? ??? ??????.

Ageneratorinphpisamemory- ???? Way-Erate-Overgedatasetsetsbaluesoneatimeatimeatimeatimallatonce.1.generatorsuseTheyieldKeywordTocroadtOpvaluesondemand, RetingMemoryUsage.2

PHP ??? ???? ??? ??? ??? ????? ????. ??? ????? ?? ???? ??? "?? ? ?"??? "?"? ???????. 1. ??? ? ??? ??? DocBlock (/*/)? ?? ?? ??? ???? ??? ? ?? ???? ??????. 2. JS ??? ???? ?? ???? ??? ?? ??? ??? ?????. 3. ??? ?? ?? ?? ??? ???? ????? ????? ???? ?? ????? ???? ? ??????. 4. Todo ? Fixme? ????? ???? ? ? ??? ??? ???? ?? ?? ? ??? ???????. ??? ???? ?? ??? ??? ?? ?? ?? ???? ???? ? ????.

toinstallphpquickly, usexampponwindowsorhomebrewonmacos.1. ??, downloadandinstallxAmpp, selectComponents, startApache ? placefilesinhtdocs.2

PHP??? ???? ??? ?? ?? ????? ???? ??? ?? ??? ??? ?? ? ??? ??? ???? ?????. ???? 0?? ???? ?? ??? ???? ? ?? ???? ?? ?? ? ? ????. MB_SUBSTR? ?? ??? ??? ???????. ? : $ str = "hello"; echo $ str [0]; ?? H; ??? MB_SUBSTR ($ str, 1,1)? ?? ??? ??? ??? ??????. ?? ???????? ???? ??? ???? ?? ???? ?? ?? ???? ?????? ??? ????? ?? ??? ?? ??? ???? ???? ?? ????.

tolearnpheffectical, startBysetTupaloCalserErverEnmentUsingToolslikexamppandacodeeditor -likevscode.1) installxamppforapache, mysql, andphp.2) useacodeeditorforsyntaxsupport.3)) 3) testimplephpfile.next, withpluclucincludechlucincluclucludechluclucled
