PHP笔记和技巧

PHP笔记和技巧

嵌入式服务器

我之前不知道这个。
通过下面的命令可以启动构建服务器。
这是在PHPer中常识吗?我不知道。

php -S localhost:3333

端口号随意选择。
使用此端口号访问http://localhost:3333即可启动简易的Web服务器。
试着放置以下类似的index.php文件进行测试。

<?php
echo 'Hello Everybody!!';

然后启动服务器

php -S localhost:9999

在浏览器中访问!

スクリーンショット 2016-01-26 19.09.45.png

被展示出来了。
`artisan serve`也是否在利用这个机制呢?

顺便提一下,好像从5.4开始。

请参考原始来源以获取详细信息。

语法检查

php -l ファイル名

使用这个,将对PHP语法进行检查。

暂时先试着创建以下的test.php。

<?php
$a = 123;
var b = 123;

然后

php -l test.php

如果这样假设的话

$ php -l test.php 
PHP Parse error:  syntax error, unexpected 'var' (T_VAR) in test.php on line 3

Parse error: syntax error, unexpected 'var' (T_VAR) in test.php on line 3
Errors parsing test.php

检测并通知语法错误。

对话壳(REPL)

php -a

通过这个方法,您可以立即对PHP的行为进行对话式的确认。

$ php -a
Interactive shell

php > $hoge = 123;
php > print($hoge);
123

这样子。在想要快速调查PHP的API行为时非常方便!每次都打开浏览器并在屏幕上使用var_dump很麻烦。

array_push函数的开销

由于我实际上没有通过操作码进行验证,所以这只是一般性的备忘录。

$array = array();
for ($i = 0; $i < 100; $i++) {
     array_push($array, $i)
}

比起来

$array = array();
for ($i = 0; $i < 100; $i++) {
     $array[] = $i;
}

听说这个方法更快。这次我们要好好验证一下。

暂时只进行了测量。

php -a
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { $array[] = $i; } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00002秒

平均每0.00002秒

php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00003秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00008秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00003秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00003秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00004秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00004秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00003秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00005秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00003秒
php > $array = [];$time_start = microtime(true); for ($i = 0; $i < 100; $i++) { array_push($array,$i); } $timelimit = microtime(true) - $time_start; echo "処理時間:".sprintf('%0.5f',$timelimit)."秒";
処理時間:0.00005秒

平均为0.00004秒。

bannerAds