PHP学习心得


TP5和TP6异同之处

<h2>目录结构异同</h2> <ul> <li>application -&gt; app</li> <li>框架目录存放 <ul> <li>/thinkphp/ -&gt; /vendor/topthink/</li> </ul></li> </ul> <h2>安装方式</h2> <ul> <li>TP5通过composer和git两种方式</li> <li>TP6只能通过composer进行安装</li> </ul> <h2>类自动加载方式</h2> <ul> <li>TP6 composer</li> <li>TP5 composer + 自己实现了一套</li> </ul> <h2>严格模式</h2> <ul> <li>例如:</li> <li>/vendor/topthink/framework/src/think\App.php</li> <li>declare (strict_types = 1);</li> <li>方法声明返回类型</li> </ul> <h2>TP6支持更多的PSR规范</h2> <ul> <li>PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准</li> <li>详细介绍网址 <ul> <li><a href="https://learnku.com/docs/psr">https://learnku.com/docs/psr</a></li> </ul></li> </ul> <h2>组件独立</h2> <ul> <li>orm</li> <li>模板引擎</li> </ul> <h2>中间件改进</h2> <ul> <li>TP6开始使用了管道模式来实现中间件,比起之前版本的实现更加简洁、有序</li> </ul> <h2>引入Filesystem组件</h2> <h2>php7为了提高执行效率</h2> <ul> <li>在函数方法中增加了标量类型(布尔、浮点、整型、字符)的申明特性,节省了对数据类型的检测。</li> <li>php7 仍然支持弱类型检测,即仍然可以使用原来的方式声明形参。</li> <li>标量声明有两种特性:</li> <li>强制模式(默认) <ul> <li>体现在类型转换上</li> </ul></li> <li>严格模式 <ul> <li>模式声明:declare(strict_types=1);</li> <li>默认情况值为0,值为1代表为严格校验的模式</li> <li>可以使用的类型参数:int-float-bool-string-interfaces-array-callable</li> <li>作用于形参与返回值类型说明,可选</li> </ul></li> </ul> <pre><code class="language-php">// php7之前申明方式 function type_weak(... $int) { return array_sum($int); } // 强制模式 php7声明方式 //强制模式下会将所有实参转换为整型 function sum(int ... $ints) { //array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。 print_r($ints); echo "&lt;br&gt;"; return array_sum($ints); } echo type_weak(2, '3',0.11); echo "&lt;hr&gt;"; echo sum(2, '3',0.11);</code></pre> <h2>将模式申明为严格模式</h2> <pre><code class="language-php">//declare 必须在文件首部 declare(strict_types=1); // 强制模式(默认) function type_weak(... $int){ return array_sum($int); } // 强制模式 function sum(int ... $ints) { //array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。 print_r($ints); echo "&lt;br&gt;"; return array_sum($ints); } echo type_weak(2, '3',0.11); echo "&lt;hr&gt;"; //实参存在字符串与浮点型,报错 echo sum(2, '3',0.11);</code></pre> <h2>返回值</h2> <pre><code class="language-php">declare(strict_types=0); // 强制模式(默认) function type_weak(... $int) :int { return array_sum($int); } // 强制模式 function sum(int ... $ints) :int { //array_sum() 将数组中的所有值的和以整数或浮点数的结果返回。 print_r($ints); echo "&lt;br&gt;"; //严格模式下报错 return array_sum($ints)+0.6; } echo type_weak(2, '3',0.11); echo "&lt;hr&gt;"; echo sum(2, '3',0.11);</code></pre>

页面列表

ITEM_HTML