PHP虽然不要编译,但是它真的写完就能运行吗?

PHP虽然不要编译,但是它真的写完就能运行吗?

1.PHP的一大特性是:脚本语言、不要编译
但是真的写完就可以运行?然而并不是。
PHP代码想要运行必须有个”母体”——就是我们编译好的那个”PHP可执行程序”。
在linux里这个母体可能是放在了/usr/local/php/bin/php

如何运行?
1./usr/local/php/bin/php 后面跟上某个PHP文件
2./usr/local/php/bin/php -r ‘这里直接写上PHP代码’
3.创建一个文件,在第一行写上#!/usr/local/php/bin/php
这样就可以识别这个文件是要PHP来运行(文件名不必.php结尾)
举例:

$ vi god
#/usr/local/php/bin/php
<?php
    echo 'hello world!'.PHP_EOL;

给权限$ chmod +x god
运行这个文件 $ ./god

为了在任何目录下都能执行这个god,我们需要把它拷贝到 /usr/local/bin目录下:sudo cp god /usr/local/bin(确保这个目录在你的环境变量里)
然后在任何目录执行 god,都会输出god文件里的字符串啦

==============
环境变量

查看:$ echo $PATH

怎么获取参数?
我们都知道怎么获取GET参数或POST参数,但现在木有网页,是命令行下执行php。
有2个全局变量 argc argv出现了,前者是参数个数,后者就是参数,它是一个数组

#/usr/local/php/bin/php
<?php
    $str = 'zhangsan';
    echo $str.PHP_EOL;
    echo $argv[0]; //打印:/usr/local/bin/god
    echo PHP_EOL; 

如果是echo $argv[1],我们在执行god命令的时候之后就可以带参数:$ god abc

echo $argv[1];//就会打印:abc

实战演练
需求:当我们执行god的时候,如果没有参数打印”noting”,如果有参数是-v,则打印如下字符”god version is 1.0”

#/usr/local/php/bin/php
<?php
    $result = 'noting';
    if($argc >= 2){
        if($argv[1] == '-v'){
            $result = 'god version is 1.0';
        }
    }
    echo $result.PHP_EOL; 

然后执行 $ god -v
会打印:god version is 1.0

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值