沈逸老师PHP魔鬼特训笔记(2)
一、这一课会学习到几个懒人函数:
1、file_put_contents
(PHP 5, PHP 7)
file_put_contents — 将一个字符串写入文件
说明
和依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
If filename does not exist, the file is created. Otherwise, the existing file is overwritten, unless the FILE_APPEND flag is set.
参数
filename-
要被写入数据的文件名。
data-
要写入的数据。类型可以是 string,array 或者是 stream 资源(如上面所说的那样)。
如果
data指定为 stream 资源,这里 stream 中所保存的缓存数据将被写入到指定文件中,这种用法就相似于使用 stream_copy_to_stream() 函数。参数
data可以是数组(但不能为多维数组),这就相当于 file_put_contents($filename, join('', $array))。 flags-
flags的值可以是 以下 flag 使用 OR (|) 运算符进行的组合。例如(源于PHP.net)
<?php$file = 'people.txt';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new person to the file
$current .= "John Smith\n";
// Write the contents back to the filefile_put_contents($file, $current);
?>
2、getcwd() //获取当前工作目录
PHP 4, PHP 5, PHP 7
getcwd — 取得当前工作目录
说明
取得当前工作目录。
返回值
成功则返回当前工作目录,失败返回 FALSE。
在某些 Unix 的变种下,如果任何父目录没有设定可读或搜索模式,即使当前目录设定了,getcwd() 还是会返回 FALSE。有关模式与权限的更多信息见 chmod()。
1 例如:在ubuntu终端
tiger@xz1024:~$ php -r "echo getcwd();"
/home/tigertiger@xz1024:~$
3、substr()
(PHP 4, PHP 5, PHP 7)
substr — 返回字符串的子串
说明
$string , int $start [, int $length ] ) 返回字符串 string 由 start 和 length 参数指定的子字符串。
参数
string-
输入字符串。必须至少有一个字符。
start-
如果
start是非负数,返回的字符串将从string的start位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。如果
start是负数,返回的字符串将从string结尾处向前数第start个字符开始。如果
string的长度小于start,将返回FALSE。Example #1 使用负数
start<?php
$rest = substr("abcdef", -1); // 返回 "f"
$rest = substr("abcdef", -2); // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"
?>length如果提供了正数的
length,返回的字符串将从start处开始最多包括length个字符(取决于string的长度)。如果提供了负数的
length,那么string末尾处的许多字符将会被漏掉(若start是负数则从字符串尾部算起)。如果start不在这段文本中,那么将返回一个空字符串。如果提供了值为 0,
FALSE或NULL的length,那么将返回一个空字符串。如果没有提供
length,返回的子字符串将从start位置开始直到字符串结尾。Example #2 使用负数
length
<?php
$rest = substr("abcdef", 0, -1); // 返回 "abcde"
$rest = substr("abcdef", 2, -1); // 返回 "cde"
$rest = substr("abcdef", 4, -4); // 返回 ""
$rest = substr("abcdef", -3, -1); // 返回 "de"
?>
二、定义个自定义函数
PHP定义函数
function 函数名(参数1,参数2,参数n) //必须有关键字funciton
{
函数体;
}
如果要return就ruturn.忘记return返回值,也无所谓。如果函数有返回值,那必须返回。
三、PHP7特性:
PHP7允许在函数中增加返回值。比如string、int、array、object等
function 函数名(): string //注意冒号
{
}
四、课程代码:
第一课我们建立了GOD这个文件,这一课,我们建立GOD_FUNC文件,通过reuqire在god文件中引入函数文件god_func。
同时,我们为了学习PHP7新特性,专门建立god_func7这个文件,并在god文件中判断引入。
1、god
#!/usr/local/php/bin/php
<?php require('god_fun'.substr(PHP_VERSION,0,1)); //判断PHP版本后引入不同的god_func $result ='';
if($argc >=2 )
{
'-v'==$argv[1] && $result = 'god version is 1.0 ';
'init' == $argv[1] && $result = genConfig();
} echo $result;
echo PHP_EOL; ?>
2、god_func
<?php
function genConfig()
{
return file_put_contents(getcwd().'/god.json','{}').' of bytes is written.'.PHP_EOL.'god config is created'; }
?>
3、god_func7
<?php
function genConfig():string
{
return file_put_contents(getcwd().'/god.json','{}').' of bytes is written.'.PHP_EOL.'god config is created'; }
?>
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享。但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的《 PHP魔鬼训练课第一阶段》。本学习笔记小卒于博客园首发, 如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址。
上一课:沈逸老师PHP魔鬼特训笔记(1)
下一课:沈逸老师PHP魔鬼特训笔记(3)
沈逸老师PHP魔鬼特训笔记(2)的更多相关文章
- 沈逸老师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魔鬼特训笔记(3)
一.由于上两节课我们把程序放到了/usr/local/bin里面.每次编辑需要sudo .这节课我们使用PHPSTORM来编辑代码,专门把它拷贝出来,然后放到一个叫做home/godpro的文件夹下. ...
- 沈逸老师PHP魔鬼特训笔记(1)
此课程个人开发环境可以考虑使用Ubuntu ,推荐sublime和PhpStorm作为开发环境.一.PHP的一大特性是:脚本语言.不要编译,写完就可以运行? 然而并不是....... PHP代码要想运 ...
随机推荐
- Windows10输入法的切换
Alt+Shift 中⇒あ,あ⇒中 Shift 中⇒英,英⇒中 Alt+Caps Lock あ⇒カ,A⇒あ⇒カ Ctrl+Caps Loc ...
- ActiveReport资料
1. ActiveReports for .NET 2 Online | ActiveReports for .NET 3 Online 2.GroupHeader块 ①GroupHeader块为每个 ...
- ubuntu开机自启动脚本编写
1.将启动脚本复制到/etc/init.d目录下面 2.chmod 755 /etc/init.d/xxx 3.sudo update-rc.d /etc/init.d/xxx defaults 95 ...
- UVa 10817 Headmaster's Headache (状压DP+记忆化搜索)
题意:一共有s(s ≤ 8)门课程,有m个在职教师,n个求职教师.每个教师有各自的工资要求,还有他能教授的课程,可以是一门或者多门. 要求在职教师不能辞退,问如何录用应聘者,才能使得每门课只少有两个老 ...
- MySQL BINARY和BIT类型
BINARY和VARBINARY类型 BINARY和VARBIANRY类型同CHAR和VARCHAR类型相似,除了BIANARY和VARBINARY类型只包含二进制字符串,即它们只包含byte串而非字 ...
- 更改Android AVD路径
添加环境变量 变量名:ANDROID_SDK_HOME 变量值:D:\Program Files\Java //SDK路径
- jeewx的使用_02 解析微信服务器post过来的数据
如果在微信公众号接入了第三方的URL,那么用户微信服务器的请求将会被推送到第三方的URL上面,那么该如何解析数据呢?下面来分析 找到MessageUtil.java 这个类中有一个parseXml的静 ...
- 教你50招提升ASP.NET性能(二十一):避免使用会话状态
(39)Avoid using session state 招数39: 避免使用会话状态 Where possible, you should try and avoid using session ...
- SqlServer刷新所有视图
CREATE PROCEDURE RefreshAllView AS DECLARE MyCursor CURSOR FOR select Name from dbo.sysobjects where ...
- ZOJ 1151 Word Reversal反转单词 (string字符串处理)
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151 For each list of words, output a l ...