一、這一課會學習到幾個懶人函數:
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 ?>