一、這一課會學習到幾個懶人函數:
1、file_put_contents
(PHP 5, PHP 7)
file_put_contents — 將一個字符串寫入文件
$filename
, mixed $data
[, int $flags
= 0 [, resource $context
]] )
和依次調用 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
$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 file file_put_contents($file, $current);
?>
2、getcwd() //獲取當前工作目錄
PHP 4, PHP 5, PHP 7
getcwd — 取得當前工作目錄
說明string getcwd ( void )
取得當前工作目錄。
成功則返回當前工作目錄,失敗返回 FALSE
。
在某些 Unix 的變種下,如果任何父目錄沒有設定可讀或搜索模式,即使當前目錄設定了,getcwd() 還是會返回 FALSE
。有關模式與權限的更多信息見 chmod()。
1 例如:在ubuntu終端 2 tiger@xz1024:~$ php -r "echo getcwd();" 3 /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
1 <?php 2 function genConfig():string 3 { 4 return file_put_contents(getcwd().'/god.json','{}').' of bytes is written.'.PHP_EOL.'god config is created'; 5 6 } 7 ?>