ThinkPHP分页类的使用相关问题
ThinkPHP3.2.3<span style="color: #000000;">Page</span>.<span style="color: #0000ff;">class</span>.<span style="color: #000000;">php文件源码</span><span style="color: #000000;">php</span><span style="color: #008000;">//</span><span style="color: #008000;"> +----------------------------------------------------------------------// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.// +----------------------------------------------------------------------// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )// +----------------------------------------------------------------------// | Author: 麦当苗儿 <http:>// +----------------------------------------------------------------------</http:></span><span style="color: #000000;">namespace Think;</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Page{ </span><span style="color: #0000ff;">public</span> <span style="color: #800080;">$firstRow</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 起始行数</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$listRows</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 列表每页显示行数</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$parameter</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 分页跳转时要带的参数</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$totalRows</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 总行数</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$totalPages</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 分页总页面数</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$rollPage</span> = 11;<span style="color: #008000;">//</span><span style="color: #008000;"> 分页栏每页显示的页数</span> <span style="color: #0000ff;">public</span> <span style="color: #800080;">$lastSuffix</span> = <span style="color: #0000ff;">true</span>; <span style="color: #008000;">//</span><span style="color: #008000;"> 最后一页是否显示总页数</span> <span style="color: #0000ff;">private</span> <span style="color: #800080;">$p</span> = 'p'; <span style="color: #008000;">//</span><span style="color: #008000;">分页参数名</span> <span style="color: #0000ff;">private</span> <span style="color: #800080;">$url</span> = ''; <span style="color: #008000;">//</span><span style="color: #008000;">当前链接URL</span> <span style="color: #0000ff;">private</span> <span style="color: #800080;">$nowPage</span> = 1<span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;"> 分页显示定制</span> <span style="color: #0000ff;">private</span> <span style="color: #800080;">$config</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">( </span>'header' => '<span class="rows">共 %TOTAL_ROW% 条记录</span>', 'prev' => ' '>>', 'first' => '1...', 'last' => '...%TOTAL_PAGE%', 'theme' => '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',<span style="color: #000000;"> ); </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 架构函数 * @param array $totalRows 总的记录数 * @param array $listRows 每页显示记录数 * @param array $parameter 分页跳转的参数 </span><span style="color: #008000;">*/</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> __construct(<span style="color: #800080;">$totalRows</span>, <span style="color: #800080;">$listRows</span>=20, <span style="color: #800080;">$parameter</span> = <span style="color: #0000ff;">array</span><span style="color: #000000;">()) { C(</span>'VAR_PAGE') && <span style="color: #800080;">$this</span>->p = C('VAR_PAGE'); <span style="color: #008000;">//</span><span style="color: #008000;">设置分页参数名称</span> <span style="color: #008000;">/*</span><span style="color: #008000;"> 基础设置 </span><span style="color: #008000;">*/</span> <span style="color: #800080;">$this</span>->totalRows = <span style="color: #800080;">$totalRows</span>; <span style="color: #008000;">//</span><span style="color: #008000;">设置总记录数</span> <span style="color: #800080;">$this</span>->listRows = <span style="color: #800080;">$listRows</span>; <span style="color: #008000;">//</span><span style="color: #008000;">设置每页显示行数</span> <span style="color: #800080;">$this</span>->parameter = <span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$parameter</span>) ? <span style="color: #800080;">$_GET</span> : <span style="color: #800080;">$parameter</span><span style="color: #000000;">; </span><span style="color: #800080;">$this</span>->nowPage = <span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$_GET</span>[<span style="color: #800080;">$this</span>->p]) ? 1 : <span style="color: #008080;">intval</span>(<span style="color: #800080;">$_GET</span>[<span style="color: #800080;">$this</span>-><span style="color: #000000;">p]); </span><span style="color: #800080;">$this</span>->nowPage = <span style="color: #800080;">$this</span>->nowPage>0 ? <span style="color: #800080;">$this</span>->nowPage : 1<span style="color: #000000;">; </span><span style="color: #800080;">$this</span>->firstRow = <span style="color: #800080;">$this</span>->listRows * (<span style="color: #800080;">$this</span>->nowPage - 1<span style="color: #000000;">); } </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 定制分页链接设置 * @param string $name 设置名称 * @param string $value 设置值 </span><span style="color: #008000;">*/</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> setConfig(<span style="color: #800080;">$name</span>,<span style="color: #800080;">$value</span><span style="color: #000000;">) { </span><span style="color: #0000ff;">if</span>(<span style="color: #0000ff;">isset</span>(<span style="color: #800080;">$this</span>->config[<span style="color: #800080;">$name</span><span style="color: #000000;">])) { </span><span style="color: #800080;">$this</span>->config[<span style="color: #800080;">$name</span>] = <span style="color: #800080;">$value</span><span style="color: #000000;">; } } </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 生成链接URL * @param integer $page 页码 * @return string </span><span style="color: #008000;">*/</span> <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span> url(<span style="color: #800080;">$page</span><span style="color: #000000;">){ </span><span style="color: #0000ff;">return</span> <span style="color: #008080;">str_replace</span>(<span style="color: #008080;">urlencode</span>('[PAGE]'), <span style="color: #800080;">$page</span>, <span style="color: #800080;">$this</span>-><span style="color: #000000;">url); } </span><span style="color: #008000;">/*</span><span style="color: #008000;">* * 组装分页链接 * @return string </span><span style="color: #008000;">*/</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span><span style="color: #000000;"> show() { </span><span style="color: #0000ff;">if</span>(0 == <span style="color: #800080;">$this</span>->totalRows) <span style="color: #0000ff;">return</span> ''<span style="color: #000000;">; </span><span style="color: #008000;">/*</span><span style="color: #008000;"> 生成URL </span><span style="color: #008000;">*/</span> <span style="color: #800080;">$this</span>->parameter[<span style="color: #800080;">$this</span>->p] = '[PAGE]'<span style="color: #000000;">; </span><span style="color: #800080;">$this</span>->url = U(ACTION_NAME, <span style="color: #800080;">$this</span>-><span style="color: #000000;">parameter); </span><span style="color: #008000;">/*</span><span style="color: #008000;"> 计算分页信息 </span><span style="color: #008000;">*/</span> <span style="color: #800080;">$this</span>->totalPages = <span style="color: #008080;">ceil</span>(<span style="color: #800080;">$this</span>->totalRows / <span style="color: #800080;">$this</span>->listRows); <span style="color: #008000;">//</span><span style="color: #008000;">总页数</span> <span style="color: #0000ff;">if</span>(!<span style="color: #0000ff;">empty</span>(<span style="color: #800080;">$this</span>->totalPages) && <span style="color: #800080;">$this</span>->nowPage > <span style="color: #800080;">$this</span>-><span style="color: #000000;">totalPages) { </span><span style="color: #800080;">$this</span>->nowPage = <span style="color: #800080;">$this</span>-><span style="color: #000000;">totalPages; } </span><span style="color: #008000;">/*</span><span style="color: #008000;"> 计算分页临时变量 </span><span style="color: #008000;">*/</span> <span style="color: #800080;">$now_cool_page</span> = <span style="color: #800080;">$this</span>->rollPage/2<span style="color: #000000;">; </span><span style="color: #800080;">$now_cool_page_ceil</span> = <span style="color: #008080;">ceil</span>(<span style="color: #800080;">$now_cool_page</span><span style="color: #000000;">); </span><span style="color: #800080;">$this</span>->lastSuffix && <span style="color: #800080;">$this</span>->config['last'] = <span style="color: #800080;">$this</span>-><span style="color: #000000;">totalPages; </span><span style="color: #008000;">//</span><span style="color: #008000;">上一页</span> <span style="color: #800080;">$up_row</span> = <span style="color: #800080;">$this</span>->nowPage - 1<span style="color: #000000;">; </span><span style="color: #800080;">$up_page</span> = <span style="color: #800080;">$up_row</span> > 0 ? '<a class="prev" href="'%20.%20<span%20style=" color:>$this->url(<span style="color: #800080;">$up_row</span>) . '">' . <span style="color: #800080;">$this</span>->config['prev'] . '</a>' : ''<span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">下一页</span> <span style="color: #800080;">$down_row</span> = <span style="color: #800080;">$this</span>->nowPage + 1<span style="color: #000000;">; </span><span style="color: #800080;">$down_page</span> = (<span style="color: #800080;">$down_row</span> $this->totalPages) ? '<a class="next" href="'%20.%20<span%20style=" color:>$this->url(<span style="color: #800080;">$down_row</span>) . '">' . <span style="color: #800080;">$this</span>->config['next'] . '</a>' : ''<span style="color: #000000;">; </span><span style="color: #008000;">//</span><span style="color: #008000;">第一页</span> <span style="color: #800080;">$the_first</span> = ''<span style="color: #000000;">; </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$this</span>->totalPages > <span style="color: #800080;">$this</span>->rollPage && (<span style="color: #800080;">$this</span>->nowPage - <span style="color: #800080;">$now_cool_page</span>) >= 1<span style="color: #000000;">){ </span><span style="color: #800080;">$the_first</span> = '<a class="first" href="'%20.%20<span%20style=" color:>$this->url(1) . '">' . <span style="color: #800080;">$this</span>->config['first'] . '</a>'<span style="color: #000000;">; } </span><span style="color: #008000;">//</span><span style="color: #008000;">最后一页</span> <span style="color: #800080;">$the_end</span> = ''<span style="color: #000000;">; </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$this</span>->totalPages > <span style="color: #800080;">$this</span>->rollPage && (<span style="color: #800080;">$this</span>->nowPage + <span style="color: #800080;">$now_cool_page</span>) $this-><span style="color: #000000;">totalPages){ </span><span style="color: #800080;">$the_end</span> = '<a class="end" href="'%20.%20<span%20style=" color:>$this->url(<span style="color: #800080;">$this</span>->totalPages) . '">' . <span style="color: #800080;">$this</span>->config['last'] . '</a>'<span style="color: #000000;">; } </span><span style="color: #008000;">//</span><span style="color: #008000;">数字连接</span> <span style="color: #800080;">$link_page</span> = ""<span style="color: #000000;">; </span><span style="color: #0000ff;">for</span>(<span style="color: #800080;">$i</span> = 1; <span style="color: #800080;">$i</span> $this->rollPage; <span style="color: #800080;">$i</span>++<span style="color: #000000;">){ </span><span style="color: #0000ff;">if</span>((<span style="color: #800080;">$this</span>->nowPage - <span style="color: #800080;">$now_cool_page</span>) ){ <span style="color: #800080;">$page</span> = <span style="color: #800080;">$i</span><span style="color: #000000;">; }</span><span style="color: #0000ff;">elseif</span>((<span style="color: #800080;">$this</span>->nowPage + <span style="color: #800080;">$now_cool_page</span> - 1) >= <span style="color: #800080;">$this</span>-><span style="color: #000000;">totalPages){ </span><span style="color: #800080;">$page</span> = <span style="color: #800080;">$this</span>->totalPages - <span style="color: #800080;">$this</span>->rollPage + <span style="color: #800080;">$i</span><span style="color: #000000;">; }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #800080;">$page</span> = <span style="color: #800080;">$this</span>->nowPage - <span style="color: #800080;">$now_cool_page_ceil</span> + <span style="color: #800080;">$i</span><span style="color: #000000;">; } </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$page</span> > 0 && <span style="color: #800080;">$page</span> != <span style="color: #800080;">$this</span>-><span style="color: #000000;">nowPage){ </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$page</span> $this-><span style="color: #000000;">totalPages){ </span><span style="color: #800080;">$link_page</span> .= '<a class="num" href="'%20.%20<span%20style=" color:>$this->url(<span style="color: #800080;">$page</span>) . '">' . <span style="color: #800080;">$page</span> . '</a>'<span style="color: #000000;">; }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #0000ff;">break</span><span style="color: #000000;">; } }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{ </span><span style="color: #0000ff;">if</span>(<span style="color: #800080;">$page</span> > 0 && <span style="color: #800080;">$this</span>->totalPages != 1<span style="color: #000000;">){ </span><span style="color: #800080;">$link_page</span> .= '<span class="current">' . <span style="color: #800080;">$page</span> . '</span>'<span style="color: #000000;">; } } } </span><span style="color: #008000;">//</span><span style="color: #008000;">替换分页内容</span> <span style="color: #800080;">$page_str</span> = <span style="color: #008080;">str_replace</span><span style="color: #000000;">( </span><span style="color: #0000ff;">array</span>('%HEADER%', '%NOW_PAGE%', '%UP_PAGE%', '%DOWN_PAGE%', '%FIRST%', '%LINK_PAGE%', '%END%', '%TOTAL_ROW%', '%TOTAL_PAGE%'), <span style="color: #0000ff;">array</span>(<span style="color: #800080;">$this</span>->config['header'], <span style="color: #800080;">$this</span>->nowPage, <span style="color: #800080;">$up_page</span>, <span style="color: #800080;">$down_page</span>, <span style="color: #800080;">$the_first</span>, <span style="color: #800080;">$link_page</span>, <span style="color: #800080;">$the_end</span>, <span style="color: #800080;">$this</span>->totalRows, <span style="color: #800080;">$this</span>->totalPages), <span style="color: #800080;">$this</span>->config['theme'<span style="color: #000000;">]); </span><span style="color: #0000ff;">return</span> "<div>{<span style="color: #800080;">$page_str</span>}</div>"<span style="color: #000000;">; }}</span>
通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持。 下面是数据分页的两种示例。
第一种:利用Page类和limit方法
<span style="color: #800080;">$User</span> = M('User'); <span style="color: #008000;">//</span><span style="color: #008000;"> 实例化User对象</span><span style="color: #800080;">$count</span> = <span style="color: #800080;">$User</span>->where('status=1')-><span style="color: #008080;">count</span>();<span style="color: #008000;">//</span><span style="color: #008000;"> 查询满足要求的总记录数</span><span style="color: #800080;">$Page</span> = <span style="color: #0000ff;">new</span> \Think\Page(<span style="color: #800080;">$count</span>,25);<span style="color: #008000;">//</span><span style="color: #008000;"> 实例化分页类 传入总记录数和每页显示的记录数(25)</span><span style="color: #800080;">$show</span> = <span style="color: #800080;">$Page</span>->show();<span style="color: #008000;">//</span><span style="color: #008000;"> 分页显示输出// 进行分页数据查询 注意limit方法的参数要使用Page类的属性</span><span style="color: #800080;">$list</span> = <span style="color: #800080;">$User</span>->where('status=1')->order('create_time')->limit(<span style="color: #800080;">$Page</span>->firstRow.','.<span style="color: #800080;">$Page</span>->listRows)-><span style="color: #000000;">select();</span><span style="color: #800080;">$this</span>->assign('list',<span style="color: #800080;">$list</span>);<span style="color: #008000;">//</span><span style="color: #008000;"> 赋值数据集</span><span style="color: #800080;">$this</span>->assign('page',<span style="color: #800080;">$show</span>);<span style="color: #008000;">//</span><span style="color: #008000;"> 赋值分页输出</span><span style="color: #800080;">$this</span>->display(); <span style="color: #008000;">//</span><span style="color: #008000;"> 输出模板</span>
第二种:分页类和page方法的实现
<span style="color: #800080;">$User</span> = M('User'); <span style="color: #008000;">//</span><span style="color: #008000;"> 实例化User对象// 进行分页数据查询 注意page方法的参数的前面部分是当前的页数使用 $_GET[p]获取</span><span style="color: #800080;">$list</span> = <span style="color: #800080;">$User</span>->where('status=1')->order('create_time')->page(<span style="color: #800080;">$_GET</span>['p'].',25')-><span style="color: #000000;">select();</span><span style="color: #800080;">$this</span>->assign('list',<span style="color: #800080;">$list</span>);<span style="color: #008000;">//</span><span style="color: #008000;"> 赋值数据集</span><span style="color: #800080;">$count</span> = <span style="color: #800080;">$User</span>->where('status=1')-><span style="color: #008080;">count</span>();<span style="color: #008000;">//</span><span style="color: #008000;"> 查询满足要求的总记录数</span><span style="color: #800080;">$Page</span> = <span style="color: #0000ff;">new</span> \Think\Page(<span style="color: #800080;">$count</span>,25);<span style="color: #008000;">//</span><span style="color: #008000;"> 实例化分页类 传入总记录数和每页显示的记录数</span><span style="color: #800080;">$show</span> = <span style="color: #800080;">$Page</span>->show();<span style="color: #008000;">//</span><span style="color: #008000;"> 分页显示输出</span><span style="color: #800080;">$this</span>->assign('page',<span style="color: #800080;">$show</span>);<span style="color: #008000;">//</span><span style="color: #008000;"> 赋值分页输出</span><span style="color: #800080;">$this</span>->display(); <span style="color: #008000;">//</span><span style="color: #008000;"> 输出模板</span>
带入查询条件
如果是POST方式查询,如何确保分页之后能够保持原先的查询条件呢,我们可以给分页类传入参数,方法是给分页类的parameter属性赋值
<span style="color: #800080;">$count</span> = <span style="color: #800080;">$User</span>->where(<span style="color: #800080;">$map</span>)-><span style="color: #008080;">count</span>();<span style="color: #008000;">//</span><span style="color: #008000;"> 查询满足要求的总记录数</span><span style="color: #800080;">$Page</span> = <span style="color: #0000ff;">new</span> \Think\Page(<span style="color: #800080;">$count</span>,25);<span style="color: #008000;">//</span><span style="color: #008000;"> 实例化分页类 传入总记录数和每页显示的记录数//分页跳转的时候保证查询条件</span><span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">$map</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$key</span>=><span style="color: #800080;">$val</span><span style="color: #000000;">) { </span><span style="color: #800080;">$Page</span>->parameter[<span style="color: #800080;">$key</span>] = <span style="color: #008080;">urlencode</span>(<span style="color: #800080;">$val</span><span style="color: #000000;">);}</span><span style="color: #800080;">$show</span> = <span style="color: #800080;">$Page</span>->show();<span style="color: #008000;">//</span><span style="color: #008000;"> 分页显示输出</span>
分页样式定制
我们可以对输出的分页样式进行定制,分页类Page提供了一个setConfig方法来修改默认的一些设置。例如:
<span style="color: #800080;">$page</span>->setConfig('header','
setConfig方法支持的属性包括:
header:头部描述信息,默认值 “共 %TOTAL_ROW% 条记录”
next:下一页描述信息,默认值 “>>”
first:第一页描述信息,默认值 “1…”
last:最后一页描述信息,默认值 “…%TOTAL_PAGE%”
theme :分页主题描述信息,包括了上面所有元素的组合 ,设置该属性可以改变分页的各个单元的显示位置,默认值是 “%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%”
其中,显示位置的对应的关系为:
位置 说明
%FIRST% 表示第一页的链接显示
%UP_PAGE% 表示上一页的链接显示
%LINK_PAGE% 表示分页的链接显示
%DOWN_PAGE% 表示下一页的链接显示
%END% 表示最后一页的链接显示
除了改变显示信息外,你还可以使用样式来定义分页的显示效果。 这些样式class包括:first(第一页)、prev(上一页)、next(下一页)、end(最后一页)、num(其他页的数字)、current(当前页)。
ThinkPHP系统分页类写的已经很完善只要花几分钟时间研究一下源代码即可,官方注释也很清晰。这里注解一下使用中的问题。系统默认设置了
<code class="hljs cs has-numbering"><span class="hljs-keyword">public $rollPage = <span class="hljs-number">11;<span class="hljs-comment">// 分页栏每页显示的页数<span class="hljs-keyword">public $lastSuffix = <span class="hljs-keyword">true; <span class="hljs-comment">// 最后一页是否显示总页数</span></span></span></span></span></span></code><br><br>
一开始看注释还不是很清楚,其实第一个参数是控制显示多少页数,如果默认显示11个页码一般太长,个人喜欢设置为5,当然修改这些参数不要在系统源文件中修改,而是在使用的时候设置$page->rollPage=5
即可。
而第二个参数就比较坑人了,我们在个性化分页显示的时候通常会采用setConfig('last','尾页');
用来设置最后一页显示为“尾页”,但是在show方法中可以看到tp在$this->lastSuffix
为真的时候重置该$this->config['last']
的值为总页数这样导致无论你怎么设置最后一业都显示为数字。也不知道官方为什么这么设置,解决办法依然是重新设置$page->lastSuffix = false;
即可。

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

PHP는 죽지 않고 끊임없이 적응하고 진화합니다. 1) PHP는 1994 년부터 새로운 기술 트렌드에 적응하기 위해 여러 버전 반복을 겪었습니다. 2) 현재 전자 상거래, 컨텐츠 관리 시스템 및 기타 분야에서 널리 사용됩니다. 3) PHP8은 성능과 현대화를 개선하기 위해 JIT 컴파일러 및 기타 기능을 소개합니다. 4) Opcache를 사용하고 PSR-12 표준을 따라 성능 및 코드 품질을 최적화하십시오.

PHP의 미래는 새로운 기술 트렌드에 적응하고 혁신적인 기능을 도입함으로써 달성 될 것입니다. 1) 클라우드 컴퓨팅, 컨테이너화 및 마이크로 서비스 아키텍처에 적응, Docker 및 Kubernetes 지원; 2) 성능 및 데이터 처리 효율을 향상시키기 위해 JIT 컴파일러 및 열거 유형을 도입합니다. 3) 지속적으로 성능을 최적화하고 모범 사례를 홍보합니다.

PHP에서, 특성은 방법 재사용이 필요하지만 상속에 적합하지 않은 상황에 적합합니다. 1) 특성은 클래스에서 다중 상속의 복잡성을 피할 수 있도록 수많은 방법을 허용합니다. 2) 특성을 사용할 때는 대안과 키워드를 통해 해결할 수있는 방법 충돌에주의를 기울여야합니다. 3) 성능을 최적화하고 코드 유지 보수성을 향상시키기 위해 특성을 과도하게 사용해야하며 단일 책임을 유지해야합니다.

의존성 주입 컨테이너 (DIC)는 PHP 프로젝트에 사용하기위한 객체 종속성을 관리하고 제공하는 도구입니다. DIC의 주요 이점에는 다음이 포함됩니다. 1. 디커플링, 구성 요소 독립적 인 코드는 유지 관리 및 테스트가 쉽습니다. 2. 유연성, 의존성을 교체 또는 수정하기 쉽습니다. 3. 테스트 가능성, 단위 테스트를 위해 모의 객체를 주입하기에 편리합니다.

SplfixedArray는 PHP의 고정 크기 배열로, 고성능 및 메모리 사용이 필요한 시나리오에 적합합니다. 1) 동적 조정으로 인한 오버 헤드를 피하기 위해 생성 할 때 크기를 지정해야합니다. 2) C 언어 배열을 기반으로 메모리 및 빠른 액세스 속도를 직접 작동합니다. 3) 대규모 데이터 처리 및 메모리에 민감한 환경에 적합하지만 크기가 고정되어 있으므로주의해서 사용해야합니다.

PHP는 $ \ _ 파일 변수를 통해 파일 업로드를 처리합니다. 보안을 보장하는 방법에는 다음이 포함됩니다. 1. 오류 확인 확인, 2. 파일 유형 및 크기 확인, 3 파일 덮어 쓰기 방지, 4. 파일을 영구 저장소 위치로 이동하십시오.

JavaScript에서는 NullCoalescingOperator (??) 및 NullCoalescingAssignmentOperator (?? =)를 사용할 수 있습니다. 1. 2. ??= 변수를 오른쪽 피연산자의 값에 할당하지만 변수가 무효 또는 정의되지 않은 경우에만. 이 연산자는 코드 로직을 단순화하고 가독성과 성능을 향상시킵니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!
