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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式