沈逸老师PHP魔鬼特训笔记(3)
一、由于上两节课我们把程序放到了/usr/local/bin里面。每次编辑需要sudo 。这节课我们使用PHPSTORM来编辑代码,专门把它拷贝出来,然后放到一个叫做home/godpro的文件夹下。
二、现在我们来做一个拷贝脚本,方便自动把home/godpro下的文件拷贝到/usr/local/bin里面
1、我们在godpro下创建一个文件叫做done的文件。
- echo your password | sudo -S /bin/bash -c ' cp god* /usr/local/bin'
- 然后给这个done chmod +x done
三、这节课接触下PHP的类
- class godInit
- {
- public $god_version=“”;
- function genConfig() { ……}
- }
今天我们首先学习静态方法、静态属性的写法.
四、我们设定一个需求:当我们执行godinit ,我们的God会向你提问: 1、询问你的项目的名称是什么? 2、询问项目的作者是什么? 回答后,把这2个值保存在godinit2个静态变量里:
首先需要补充的知识点:从标准输入中获取用户输入的字符 $getstr=fgets(STDIN);
好,下面我们新建文件godinit,并创建一个类:
- <?php
- class godinit //创建一个类,godinit
- {
- static $VERSION="god version is 1.1"; //声明一个静态属性$VERSION
- static $prj_name=""; //声明一个静态属性项目名称
- static $prj_author='shenyi'; //声明一个静态属性项目作者
- static function init() //静态方法 init
- {
- echo "input your project name?".PHP_EOL;
- self::$prj_name=fgets(STDIN); //从标准输入中获取用户输入的字符并赋值给静态属性$prj_name
- echo "input your author name?".PHP_EOL;
- self::$prj_author=fgets(STDIN);
- echo "采集信息如下".PHP_EOL;
- echo self::$prj_name.PHP_EOL;
- echo self::$prj_author.PHP_EOL;
- //return ""
- }
- }
- ?>
在类的内部我们要更改静态变量 就可以使用self; self代表类本身 ,用:: 表示调用类本身的变量或者函数。
现在god文件应该是:
- #!/usr/local/bin/php
- <?php
- require('god_func7');
- require("godint.php");
- $result='';
- if($argc>=2)
- {
- '-v'==$argv[1] && $result=godinit::$VERSION;
- 'make'==$argv[1] && $result=godinit::make();
- 'init'==$argv[1] && $result=godinit::init();
- }
- echo $result;
- echo PHP_EOL;
- ?>
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享。但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的《 PHP魔鬼训练课第一阶段》。本学习笔记小卒于博客园首发, 如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址。
上一课:沈逸老师PHP魔鬼特训笔记(2)
下一课:沈逸老师PHP魔鬼特训笔记(4)
沈逸老师PHP魔鬼特训笔记(3)的更多相关文章
- 沈逸老师PHP魔鬼特训笔记(10)
为了防止代码让我们混淆不清,大家看视频中的分离方法 1.新建了一个文件夹叫code (这代表是代码) 2.再新建一个文件夹叫page (这代表是页面) 代码该怎么写呢? 这里要记住口诀 1.index ...
- 沈逸老师PHP魔鬼特训笔记(9)--进化
回到第一课,我们学过PHP母体,了解过解析PHP程序.PHP其实内置了一个web服务器,专门给我们开发测试使用,那么接下来我们要完成的是:生成后创建一个web 服务,在浏览器中可以访问. PHP的母体 ...
- 沈逸老师PHP魔鬼特训笔记(8)
创建模板文件: 这节课老师带领我们开始创建TEMPLATE,按照老师教导的思路,我们希望这样一种代码写法:1.譬如我定义一个变量$name=‘’;2.然后呢我读取一个模板.3.再然后我在这个模板里 设 ...
- 沈逸老师PHP魔鬼特训笔记(7)--我叫什么名字
一.生成文件夹. mkdir():--新建目录 bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false ...
- 沈逸老师PHP魔鬼特训笔记(6)--巫术与骨架
PHP最牛逼的特性之一除了懒人函数,还有一些魔法函数. 首先我们来认识下__tostring,通过一个巫术方法,我们吧实例转化过后的类,直接当字符串输出.结合我们前面所做的功能,我们在类里面加上这个函 ...
- 沈逸老师PHP魔鬼特训笔记(5)
接上一节课,我们专门新建了一个godconfig类,设置了两个属性prj_name(项目名),prj_author(作者),然后我们获取标准输入(stdin)把结果保存在了类里面. 好吧,这节课的名字 ...
- 沈逸老师PHP魔鬼特训笔记(4)
上一课我们通过shell脚本拷贝代码,了解了静态方法和静态属性.(还有个附件PHAR包,我直接无视了) 然后在GOD文件中写了一些参数, 我们也可以这样,把方法名像拼凑字符串一样拼起来. $get_p ...
- 沈逸老师PHP魔鬼特训笔记(1)
此课程个人开发环境可以考虑使用Ubuntu ,推荐sublime和PhpStorm作为开发环境.一.PHP的一大特性是:脚本语言.不要编译,写完就可以运行? 然而并不是....... PHP代码要想运 ...
- 沈逸老师PHP魔鬼特训笔记(2)
一.这一课会学习到几个懒人函数: 1.file_put_contents (PHP 5, PHP 7) file_put_contents — 将一个字符串写入文件 说明 int file_put_c ...
随机推荐
- C#中字符串与byte[]相互转换
字符串转换为byte[] 给定一个string,转换为byte[],有以下几种方法. 方法1: static byte[] GetBytes(string str) { byte[] bytes = ...
- Android 当媒体变更后,通知其他应用重新扫描
在媒体文件改变后 发出 Intent.ACTION_MEDIA_SCANNER_SCAN_FILE广播,告知其他应用,媒体文件发生改变. 具体代码片段: File oldFile = new File ...
- git/github 使用
原文:http://www.cnblogs.com/fnng/archive/2011/08/25/2153807.html git/github学习笔记 Posted on 2011-08-25 2 ...
- Winfrom子窗体刷新父窗体
本人比较懒,直接从网上转载了一篇比较合适的文章,只是文章格式有点乱,地址是 http://aspnet.blog.163.com/blog/static/17515510920121126104433 ...
- (剑指Offer)面试题33:把数组排成最小的数
题目: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 思路: 1.全 ...
- oracle查看字符集后修改oracle服务端和客户端字符集的步骤
1.oracle server端字符集查询代码如下:select userenv ('language') from dual; server字符集修改: 将数据库启动到RESTRICTED模式下做 ...
- VNC 抓取远程桌面
VNC (Virtual Network Computing)是虚拟网络计算机的缩写.VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 UNI ...
- Windows 错误代码
Error Messages for Windows http://www.gregorybraun.com/MSWINERR.ZIP Server 4.0 Error Messages Code ...
- 凯尔卡C68全球版汽车电脑诊断仪
产品简介: C68汽车故障诊断仪是凯尔卡公司新推出的一款集经济.简约.稳定.耐用于一体的汽车诊断设备, 该产品采用了最新的智能移植技术,集成度高:C68车型覆盖广,测试功能强大.数据准确等优点, 是目 ...
- jQuery Mobile和PhoneGap混合开发
其实二者并不影响,PhoneGap负责调用系统的接口,jQuery Mobile实现一些网页效果.PhoneGap开发请看上一篇文章,jQuery Mobile开发环境搭建如下:[请先阅读上一篇文章, ...