php

更新日期: 2016-05-20 阅读次数: 8942 分类: PHP

Hello World

新建一个 index.php 文件

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?> 
 </body>
</html>

使用 PHP 内置 web server 进行本地开发调试

只需要在代码目录执行

php -S localhost:8000

即可在浏览器里看到首页内容了。参考 Built-in web server

生产环境配置

新增一个 nginx 配置文件 php-firefly.conf

server {  
    listen 80;  
    #listen [::]:80 default_server;  

    root /Users/zhongwei/work/php-firefly/src;
    index index.html index.php;  
    server_name localhost;  

    location ~ \.php$ {  
        include fastcgi_params;  
        fastcgi_split_path_info ^(.+\.php)(/.+)$;  
        fastcgi_pass unix:/var/run/php5-fpm.sock;  
        fastcgi_index index.php;  
    }  
}

php-fpm 的配置文件对应的更新成

listen = /var/run/php5-fpm.sock;

如果遇到访问 http://localhost 返回空页面,并且nginx,php-fpm 都没有对应的错误日志时,参考

nginx + php5-fpm doesn't work properly. I see a white screen only - Unix & Linux Stack Exchange

在 nginx 的 fastcgi_params 文件里增加一行

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

即可

PHP里的双冒号 :: 范围解析操作符与箭头 -> 操作符 在应用上的区别在哪里?

双冒号一般是用在静态方法、静态变量的调用,此时类不需要实例化。而是用箭头操作符- > 时,必须要将类进行实例化(或者在类的内部调用也可以。)

array

php 的 array,不同于我之前接触的其他语言的 array,例如,c 和 js。php 的 array 更像一个万能收纳盒,啥都可以放,怎么放都行。过于灵活,当然这里是贬义。她兼具了 python 的 list 和 dict 的功能,所以称之为 array 具有极大的诱导性。

我感觉将其按照 python 的 list 和 dict 来分别理解更容易消化吸收。

作为 list

初始化

$arr = array(1, 2, 3);

虽然 php 5.4 之后支持了 [], 但是,为了兼容性,还是用 array 比较省心,何况我使用了 vim snippets, 对我来说没有任何负担。

Append item

$arr[] = 1;

这个语法非常怪异,可读性为0,差评。

Del item

unset($arr[0]);

需要注意的是,unset 之后,array items 的 index 并不会重排。

作为 dict

没啥特别之处

教程及参考

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式