2006世界杯巴西
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
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
$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
$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
