认真学习php面向对象-1
前言
准备写一个认真学习php面向对象的系列,使用php来做网页,没有深入了解php的话,可能三板斧就够了,并不需要有多高深!如有错误,欢迎各位不吝赐教!进度安排的话,我学到哪里,就更新到哪里了!形式的话就采用一个需求小案例,然后实现,并附上自己的总结,文章源码
主要完成工作
- 使用命令行模式模拟编译文件以及创建文件
- 实现简单的网站骨架以及mvc路由伪编译的作用
开篇所用到的环境
系统:ubuntu16.04
编辑器:phpstorm2017
需求 :1)在终端命令行下执行脚本文件并输入参数-v,然后显示版本号
解决 : 需要用到php的预定义变量 argc和 argv
argc和 argv都是php的预定义变量,可以接收到命令行下下时传递给当前脚本的参数的数组。argc是参数的个数,argv是传递给脚本的参数数组
实现 :
$result='';
if ($argc>=2) {
'-v'==$argv[1] && $result ='the version is 1.0';
}
echo $result;
echo PHP_EOL;
效果 :
需求 :2)在终端命令行下执行脚本文件并输入参数init,在当前目录下生成一个json文件
**解决 : file_put_contents,官网用法如下:
int file_put_contents ( string filename,mixed data [, int flags=0[,resource context ]] )
返回值:该函数将返回写入到文件内数据的字节数,失败时返回FALSE
实现 :
$result='';
if ($argc>=2) {
'-v'==$argv[1] && $result ='the god version is 1.0';
'-init'==$argv[1] && $result =file_put_contents(getcwd().'/god.json','{}').' of bytes is written.'
.PHP_EOL.'god.json is created!';
}
echo $result;
echo PHP_EOL;
效果 :
需求 :3)判断当前php版本
**解决 : substr函数,常量PHP_VERSION
实现 :
substr(PHP_VERSION,0,1);
效果 :
需求 :3)使用面向对象改造面向过程代码
**解决 : 创建类,封装函数
实现 :
god_class.php
class god_calss
{
static $version="the god version is 1.0";
static public function version() {
return self::$version;
}
static public function getconfig() {
return file_put_contents(getcwd().'/god.json','{}').' of bytes is written.'
.PHP_EOL.'god.json is created!';
}
}
god.php
require ("god_calss.php");
$result='';
if ($argc>=2) {
'-v'==$argv[1] && $result =god_calss::version();
'-init'==$argv[1] && $result =god_calss::getconfig();
}
echo $result;
echo PHP_EOL;
需求 :4)使用STDIN获取命令行输入
**解决 : fgets(从文件指针中读取一行),STDIN(标准输入对象,c语言)
实现 :
god_class.php
static function init() {
echo "input your project_name?".PHP_EOL;
self::$prj_name=fgetc(STDIN);
echo "input your author_name?".PHP_EOL;
self::$author=fgetc(STDIN);
echo "your input:";
echo self::$prj_name.PHP_EOL;
echo self::$author.PHP_EOL;
}
god.php
require ("god_calss.php");
$result='';
if ($argc>=2) {
'-v'==$argv[1] && $result =god_calss::version();
'-init'==$argv[1] && god_calss::init();
}
echo $result;
echo PHP_EOL;