【风马一族_php】NO4_php基础知识
?原文來自:http://www.cnblogs.com/sows/p/6017018.html(博客園的)風(fēng)馬一族 侵犯版本,后果自負(fù)
?
回顧
運(yùn)算符:算術(shù)運(yùn)算符、邏輯運(yùn)算符、比較運(yùn)算符、位運(yùn)算符、賦值運(yùn)算符、字符串運(yùn)算符、自操作運(yùn)算符、錯(cuò)誤抑制符、三元運(yùn)算符
位:二進(jìn)制、原碼、反碼、補(bǔ)碼
流程控制:順序、分支、循環(huán)
分支結(jié)構(gòu):if分支 和 switch分支
switch:每個(gè)case最后面都會(huì)跟上break
switch:適合固定值的處理,不適合條件運(yùn)算處理
if :?適合處理?xiàng)l件運(yùn)算方面的處理
循環(huán)結(jié)構(gòu):for?、 while?、 do-while?、 foreach
` 函數(shù):系統(tǒng)函數(shù)和自定義函數(shù)
調(diào)用:函數(shù)名(),系統(tǒng)一旦碰到一個(gè)值后面跟了括號(hào),系統(tǒng)就會(huì)把內(nèi)存里的內(nèi)容讀出來,當(dāng)做函數(shù)去執(zhí)行
定義函數(shù):function 函數(shù)名(形式參數(shù)列表) {?
//函數(shù)休
? //返回值
}
function myfunc($name) {?//函數(shù)體 }
myfunc($name,$age,$sex......);?? //PHP支持實(shí)際參數(shù)比形式參數(shù)數(shù)量多,多余的部分,系統(tǒng)放棄了使用,而只獲取形參對(duì)應(yīng)的數(shù)量,對(duì)應(yīng)的位置 ?
參數(shù)傳遞:值傳遞,引用傳遞
值傳遞:將外部變量的值,復(fù)制一份,賦值給形參
引用傳遞:將外部變量所指向的內(nèi)存空間的地址,賦值給形參
function myfunc(&$name){?//函數(shù)體 }?????? //添加?地址符 &
myfunc($name) //不能使用地址符&
作用域:全局作用域和局部作用域
全局作用域:函數(shù)外部可以使用
局部作用域:函數(shù)內(nèi)部使用
函數(shù)內(nèi)部使用外部變量:$GLOBALS("變量名"),global關(guān)鍵字
=============================================================
任務(wù)
計(jì)算器
1 ========================================= 2 html 使用表單,做出來基本的計(jì)算器的界面 3 ========================================= 4 <html> 5 <head> 6 <meta http-equiv="content-type" content="text/html;charset=utf-8"> 7 </head> 8 9 <body> 10 <form method="POST" action=""> 11 <input type="text" name="first" size="5"/> 12 <select name="opr"> 13 <option value="+">+</option> 14 <option value="-">-</option> 15 <option value="*">*</option> 16 <option value="/">/</option> 17 <option value="%">%</option> 18 </select> 19 <input type="text" name="second" size="5"/> 20 <span>=</span> 21 <input type="text" /> 22 <input type="submit" nam="submit" value="提交" /> 23 </form> 24 </body> 25 26 27 ========================================= 28 使用PHP計(jì)算表單提交的內(nèi)容 29 ========================================= 30 <html> 31 <head> 32 <meta http-equiv="content-type" content="text/html;charset=utf-8"> 33 </head> 34 <?php 35 //PHP計(jì)算器 36 //可以輸入兩個(gè)數(shù)值,可以選擇操作符號(hào),返回計(jì)算結(jié)果 37 //要在當(dāng)前直接顯示結(jié)果,還要保護(hù)用戶的操作 38 39 if(!isset($_POST['submit'])){ 40 //直接訪問 41 }else{ 42 //提交數(shù)據(jù),進(jìn)行運(yùn)算 43 $first = $_POST['first']; 44 $second = $_POST['second']; 45 $opr= $_POST['opr']; 46 47 //計(jì)算結(jié)果,先初始化為0 48 $res=0; 49 50 //根據(jù)操作符來計(jì)算結(jié)果 51 switch($opr){ 52 case '+': 53 $res= $first + $second; 54 break; 55 case '-': 56 $res= $first - $second; 57 break; 58 case '*': 59 $res= $first * $second; 60 break; 61 case '/': 62 $res= $first / $second; 63 break; 64 case '%': 65 $res= $first % $second; 66 break; 67 } 68 } 69 ?> 70 <body> 71 <form method="POST" action=""> 72 <input type="text" name="first" size="5" value="<?php echo isset($first)?$first:''; ?>" /> <--!PHP語句的作用:提交后,顯示用戶輸入的數(shù)據(jù) --> 73 <select name="opr"> 74 <option value="+" <?php echo isset($opr)?(($opr=='+')?'selected="selected"':''):''?>>+</option> 75 <option value="-" <?php echo isset($opr)?(($opr=='-')?'selected="selected"':''):''?>>-</option> 76 <option value="*" <?php echo isset($opr)?(($opr=='*')?'selected="selected"':''):''?>>*</option> 77 <option value="/" <?php echo isset($opr)?(($opr=='/')?'selected="selected"':''):''?>>/</option> 78 <option value="%" <?php echo isset($opr)?(($opr=='%')?'selected="selected"':''):''?>>%</option> 79 </select> 80 <input type="text" name="second" size="5" value="<?php echo isset($second)?$second:''; ?>" /> <--!PHP語句的作用:提交后,顯示用戶輸入的數(shù)據(jù) --> 81 <span>=</span> 82 <input type="text" readonly disabled size="5" value="<?php echo isset($res)?$res:''; ?>" /> <!--readonly 只讀(禁止輸入) disabled 失去光標(biāo)--> <--!PHP語句的作用:提交后,顯示運(yùn)算的結(jié)果 --> 83 <input type="submit" name="submit" value="提交" /> 84 </form> 85 </body> 86 87 ============================================= 88 PHP語句說明 89 90 //提交數(shù)據(jù)后,運(yùn)算符會(huì)默認(rèn)選擇第一個(gè)符號(hào) 91 //為了讓提交數(shù)據(jù),顯示用戶提交時(shí)選擇的運(yùn)算符,而使用selected="selected" 92 //本程序主要使用PHP來編寫計(jì)算器,因此使用如下語句,【可以使用JS等來實(shí)現(xiàn),也是允許】 93 <?php echo isset($opr)?(($opr=='+')?'selected="selected"':''):''?> 94 95 //從php中,接收php運(yùn)算的結(jié)果 96 value="<?php echo isset($res)?$res:''; ?>" 97 php--計(jì)算器
九九乘法
1 <?php 2 //函數(shù)內(nèi)進(jìn)行乘法法則的運(yùn)算 3 function calculator($rows){ 4 for($row=1;$row<=$rows;++$row){ 5 for($col=1;$col<=$row;++$col){ 6 echo "$row * $col = ".($row*$col)."\t"; 7 } 8 echo "<br />"; 9 } 10 } 11 12 //調(diào)用函數(shù),傳遞的行數(shù)為12[大于0的整數(shù)] 13 calculator(9); 14 ?> 15 16 結(jié)果(示例) 17 1 * 1 = 1 18 2 * 1 = 2 2 * 2 = 4 19 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 20 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 21 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 22 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 23 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 24 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 25 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 php--九九乘法
?
?
=============================================================
匿名函數(shù)
定義:沒有名字的函數(shù)
語法:變量名 = function(參數(shù)列表) {//函數(shù)體};
問題:1、沒有名字的函數(shù)如何定義???
函數(shù)的定義在編輯階段,會(huì)被系統(tǒng)存放到代碼區(qū),會(huì)有一個(gè)內(nèi)存地址,需要通過變量來保存函數(shù)的內(nèi)存地址
? 2.沒有名字的函數(shù)如何調(diào)用
1.調(diào)用函數(shù)必須有括號(hào),函數(shù)的調(diào)用實(shí)際是在棧里開辟內(nèi)存空間,把函數(shù)體給加載進(jìn)來,逐行執(zhí)行。
2.通過變量保存的函數(shù)的內(nèi)存地址,來講函數(shù)給取出放到棧里
3.告訴系統(tǒng),取出來的數(shù)據(jù)是一個(gè)函數(shù),系統(tǒng)需要當(dāng)做函數(shù)來處理,增加一個(gè)括號(hào)
?
匿名函數(shù)的作用?
1.是一種允許的語法結(jié)構(gòu)
2.一般是用于函數(shù)的參數(shù)(主要) ?
1 <?php 2 3 //定義匿名函數(shù),將函數(shù)賦值給變量 4 $name=function(){ 5 return "風(fēng)馬一族"; 6 }; 7 8 //調(diào)用匿名函數(shù) 9 echo $name(); 10 ?> php--匿名函數(shù)的使用示例
方法: 使用function(){//函數(shù)體} 定義函數(shù)
$name = function(){//函數(shù)體}; ? ? //將函數(shù)賦給變量,記得加上分號(hào)? ;
? $name(); ?? //給變量加上括號(hào) ()? ,相當(dāng)于讓系統(tǒng)承認(rèn)它是一個(gè)函數(shù),而不是變量
=============================================================
偽類型
mixed : 說明一個(gè)參數(shù)可以接受多種不同的(但不一定是所有的)類型
例如: gettype() 可以接受所有的PHP類型? //獲取變量的類型?? http://php.net/manual/zh/function.gettype.php
str_replace()可以接受字符串和數(shù)組
number : 說明一個(gè)參數(shù)可以是integer 或者 float
callback : 回調(diào)類型
示例代碼
1 <?php 2 3 function myfunc($func_name,$name='東京'){ 4 5 $name .= '你好'; 6 7 $func_name($name); 8 } 9 10 function display($welcome){ 11 echo $welcome." you are sows"; 12 } 13 14 myfunc('display','淘寶'); 15 16 ?> php--回調(diào)示例代碼?
?
void:? 1 作為返回類型意味著函數(shù)的返回值是無用的。
? 2 作為參數(shù)列表意味著函數(shù)不接受任何參數(shù)
?????? ...? : 在函數(shù)原型中,$... 表示等等的意思,當(dāng)一個(gè)函數(shù)可以接受任意個(gè)參數(shù)時(shí)使用此變量名
=============================================================
?可變函數(shù)
可變變量:將一個(gè)變量的值當(dāng)做一個(gè)變量的名字,從而去獲取另個(gè)變量的值 $$變量名
可變函數(shù),通過一個(gè)變量,獲取其對(duì)應(yīng)的變量值,然后通過給該值增加一個(gè)括號(hào)(),讓系統(tǒng)認(rèn)為該值是一個(gè)函數(shù),從而當(dāng)作函數(shù)來執(zhí)行
?
1 <?php 2 3 function display(){ 4 //函數(shù)體 5 } 6 7 $var = 'display'; 8 9 $var(); 10 11 ?> php--可變函數(shù)的示例?
1 <?php 2 3 //自定義函數(shù) 4 function sows(){ 5 6 return "you are sows"; 7 } 8 9 //將自定義函數(shù)的名稱,賦給變量 10 $name="sows"; 11 12 //給變量添加(),讓系統(tǒng)來把變量,當(dāng)作函數(shù)來使用 13 echo $name(); 14 ?> php--可變函數(shù)的使用示例?
=============================================================
數(shù)據(jù)類型轉(zhuǎn)換
指的是將數(shù)據(jù)(變量)的值轉(zhuǎn)換成目標(biāo)數(shù)據(jù)類型
PHP中有兩種數(shù)據(jù)類型轉(zhuǎn)換方式:自動(dòng)轉(zhuǎn)換、強(qiáng)制轉(zhuǎn)換
?
1. 自動(dòng)轉(zhuǎn)換:系統(tǒng)根據(jù)操作所需要的類型將變量的值進(jìn)行對(duì)應(yīng)類型的轉(zhuǎn)換
????????? 自動(dòng)轉(zhuǎn)換都是系統(tǒng)本身所做的事情,不需要用戶去干預(yù)
2. 強(qiáng)制轉(zhuǎn)換: 根據(jù)具體的需求,將變量的值事先轉(zhuǎn)換成所需的數(shù)據(jù)類型
int? integer : 整型,將數(shù)據(jù)轉(zhuǎn)換成整型?
bool? Boolean: 將數(shù)據(jù)值換成布爾值
float : 轉(zhuǎn)換成浮點(diǎn)型
string : 轉(zhuǎn)換成字符型
array :轉(zhuǎn)換成數(shù)組類型
object : 轉(zhuǎn)換成對(duì)象類型
語法: (數(shù)據(jù)類型)變量
1. var_dump 把變量的類型及長(zhǎng)度還有數(shù)據(jù)值都輸出
2. 通過函數(shù)gettype函數(shù),獲得數(shù)據(jù)的類型,返回一個(gè)字符串
疑問:為什么會(huì)兩種變量類型 , float? or double?
設(shè)置數(shù)據(jù)類型:settype($var,'類型') ? 《======》 ? (類型)$var;
示例
規(guī)則如下:
1.? 字符串只有以數(shù)值或者小數(shù)點(diǎn)開始的時(shí)候,系統(tǒng)才會(huì)有可能將字符串進(jìn)行數(shù)值轉(zhuǎn)換,要不然直接轉(zhuǎn)換成0
2. 若出現(xiàn)一個(gè)英文句號(hào),則把句號(hào)后面的數(shù)字視為小數(shù)部分
4. 只讀取前面連續(xù)的數(shù)值,沒有字母或者其他特殊字符
3. 只讀取一個(gè)句號(hào)
4.如果有小數(shù)點(diǎn)最終保留,那么數(shù)據(jù)類型變成浮點(diǎn)型,否則是整型
=============================================================
判斷數(shù)據(jù)類型
PHP提供了一些函數(shù)來判斷數(shù)據(jù)的類型,函數(shù)都是以is_開頭,后面跟數(shù)據(jù)類型。
如果是目標(biāo)類型則返回true , 否則返回false;
//標(biāo)量
is_scalar 檢測(cè)變量是否是一個(gè)標(biāo)量
is_array ? 檢測(cè)變量是否是數(shù)組
is_bool?? 檢測(cè)變量是否是布爾型
is_float 檢測(cè)變量是否是浮點(diǎn)型
is_real 此函數(shù)是 is_float() 的別名函數(shù)
is_integer 檢測(cè)變量是否是整型
is_long 檢測(cè)變量是否是整型
is_finite 判斷是否為有限值
is_infinite 判斷是否為無限值
is_object 檢測(cè)變量是否一個(gè)對(duì)象
is_subclass_of 如果此對(duì)象是該類的子類,則返回 TRUE
is_numeric 檢測(cè)變量是否為數(shù)字或數(shù)字字符串
is_string 檢測(cè)變量是否是字符串
is_tainted 檢查字符串是否被污染(被修改)
?
//特殊
is_null 檢測(cè)變量是否是空值
is_resource 檢測(cè)變量是否為資源類型
?
//文件
is_writable 判斷給定的文件名是否可寫
is_file 判斷給定文件名是否為一個(gè)正常的文件
is_readable 判斷給定文件名是否可讀
is_uploaded_file 判斷文件是否是通過 HTTP POST 上傳的
is_link 判斷給定文件名是否為一個(gè)符號(hào)連接
is_dir 判斷給定文件名是否是一個(gè)目錄
is_executable — 判斷給定文件名是否可執(zhí)行
?
//無分類
is_callable 檢測(cè)參數(shù)是否為合法的可調(diào)用結(jié)構(gòu)
is_soap_fault? 檢查SOAP調(diào)用是否失敗
is_nan 判斷是否為合法數(shù)值
iis_set_app_settings 創(chuàng)建虛擬目錄的應(yīng)用程序作用域
示例? php是弱類型的,因此 1 相當(dāng)true
?
文件包含
1.網(wǎng)站網(wǎng)頁的分層設(shè)計(jì),將不同的數(shù)據(jù)(一些公共的顯示數(shù)據(jù)),整理出來,形成一個(gè)單獨(dú)的文件。只需要在其他html代碼界面中,需要用到的時(shí)候,直接包含(加載)。
案例
1. 所有內(nèi)容在一個(gè)頁面
?
1:所有內(nèi)容分成多個(gè)頁面存放
index.php
header.php footer.php
? ? ? ??
?
2.代碼的重用:PHP所寫的函數(shù)功能,類文件、配置文件等。在需要應(yīng)用這些代碼的時(shí)候,直接將文件給包含即可
語法: <?php include '文件的路徑'? ?>
文件包含 include、include_once、require、require_once,將一個(gè)文件的內(nèi)容包含進(jìn)另外一個(gè)文件。
include、require 使用一次包含一次文件?
include_once、require_once 腳本中包含另個(gè)腳本多次,但只加載一次
include 語句包含并運(yùn)行指定文件,若找不到文件,會(huì)提示警告,并繼續(xù)運(yùn)行【E_WARNING】
require 語句包含并運(yùn)行指定文件,若找不到文件,會(huì)提示錯(cuò)誤,并終止運(yùn)行【E_COMPILE_ERROR】
示例: include使用示例
? include出錯(cuò)的表現(xiàn)
require的使用示例
? require出錯(cuò)的表現(xiàn)
?
? 連接數(shù)據(jù)庫的示例
index.php? 主頁
public.php? 連接數(shù)據(jù)庫的指令
mysql.php 保存數(shù)據(jù)庫的連接信息
?
?文件的包含路徑
文件路徑有兩種:絕對(duì)路徑和相對(duì)路徑
絕對(duì)路徑:從磁盤根目錄到文件所在的目錄
相對(duì)路徑:文件相對(duì)當(dāng)前文件所在的位置,相當(dāng)一個(gè)參照物(一般就是文件 )
?
1.相對(duì)路徑表示方式:
./ :表示當(dāng)前目錄
../? :表示上級(jí)目錄
? / ? :網(wǎng)站根目錄
2.文件嵌套包含
絕對(duì)路徑
好處:在文件嵌套包含中不會(huì)出現(xiàn)問題
壞處:修改文件位置時(shí),需要修改文件的路徑
相對(duì)路徑
壞處:在文件嵌套包含中易出現(xiàn)問題
好處:文件路徑修改,比較簡(jiǎn)單
注意:文件嵌套包含時(shí),使用絕對(duì)路徑較佳
?
終止腳本執(zhí)行
終止腳本執(zhí)行,指的是通過一條語句告訴PHP引擎,此語句之后的其他語句不需要執(zhí)行。
PHP提供了三種方式來終止腳本執(zhí)行:return、die、exit
return : 執(zhí)行到該處退出,如果是在函數(shù)中,表示退出函數(shù),如果是在腳本中,表示腳本停止執(zhí)行。
函數(shù)的return是返回函數(shù)調(diào)用的地方,腳本的return是返回給腳本被包含的地方。
示例 return方式
======================
php04_index.php :包含文件,用來包含其它的文件
php03_return.php? :被包含,而且將自身資源返回給包含文件
==========================
die的方式
===========================
exit
===========================
基于以上可能,所以PHP的配置文件(項(xiàng)目配置文件:數(shù)據(jù)庫的連接信息信息等),采用以上方式
?
?系統(tǒng)函數(shù)
字符串函數(shù)
strlen: 計(jì)算字符串的長(zhǎng)度
語法:strlen("字符串");
1 <?php 2 header('Content-type:text/html;charset=utf-8'); 3 4 $str='You are sows'; 5 6 $name="我是中國人"; 7 8 var_dump(strlen($str)); 9 var_dump(strlen($name)); 10 11 ?> 12 13 ==================================== 14 結(jié)果: 15 int(12) //$str='You are sows'; 十個(gè)字母 = 兩個(gè)空格 =12 16 17 int(15) //$name="我是中國人"; 五個(gè)漢字 *3 =15 18 19 ==================================== 20 說明: 21 gbk | gb2312 編碼里, 中文占用兩個(gè)字節(jié) 22 23 utf-8 編碼里,中文占用三個(gè)字節(jié) php--strlen-計(jì)算字符串的長(zhǎng)度?
==============
substr : 獲取字符串中的子字符串
語法:substr("字符串",截取的起始位置,截取長(zhǎng)度); ? ? ? //截取長(zhǎng)度需要根據(jù)編碼的字節(jié)占用量來考慮
1 <?php 2 header('Content-type:text/html;charset=utf-8'); 3 4 $str='You are sows'; 5 6 $name="我是中國人"; 7 8 var_dump(substr($str,0,2)); 9 var_dump(substr($name,3,3)); 10 11 ?> 12 ========================== 13 結(jié)果: 14 string(2) "Yo" //截取的位置從0開始,字節(jié)長(zhǎng)度為2 15 string(3) "是" //截取的位置從3開始,字節(jié)長(zhǎng)度為3 16 17 ========================== 18 說明: 19 1. 字符串的字符位置:是從左到右用0開始計(jì)算 20 21 2. 一個(gè)字符在不同編碼規(guī)范中,占用字節(jié)數(shù)不同, 22 因此,截取長(zhǎng)度需要根據(jù)編碼進(jìn)行考慮。 23 例如:在ascll中截取5個(gè)字符,截住長(zhǎng)度是5 24 在utf-8中截取5個(gè)字符,截取長(zhǎng)度是15 25 26 php--substr-獲取子字符串?
==============
strtolower:將字符串轉(zhuǎn)化為小寫
語法:strtolower("字符串");
1 <?php 2 header('Content-type:text/html;charset=utf-8'); 3 4 $str='You Are sows'; 5 6 var_dump(strtolower($str)); 7 8 ?> 9 10 結(jié)果: 11 string(12) "you are sows" //有大寫變小寫,沒有的,不用管 php--strtolower-大寫變小寫?
==============
strtoupper: 將字符串轉(zhuǎn)化為大寫
語法:strtoupper("字符串");
1 <?php 2 header('Content-type:text/html;charset=utf-8'); 3 4 $str='You Are sows'; 5 6 7 8 var_dump(strtoupper($str)); 9 10 ?> 11 12 ============================== 13 結(jié)果: 14 string(12) "YOU ARE SOWS" //把小寫的部分轉(zhuǎn)成大寫 php--strtoupper-小寫轉(zhuǎn)成大寫?
==============
ucfirst :將字符串的首字母轉(zhuǎn)換為大寫
語法:ucfirst("字符串");
1 <?php 2 header('Content-type:text/html;charset=utf-8'); 3 4 $str='you are sows'; 5 6 7 8 var_dump(ucfirst($str)); 9 10 ?> 11 12 ======================= 13 結(jié)果: 14 string(12) "You are sows" //適合處理英文的文章 php--ucfirst-首個(gè)字母轉(zhuǎn)成大寫?
==============
strrev :反轉(zhuǎn)字符串
語法:strrev("字符串");
1 <?php 2 header('Content-type:text/html;charset=utf-8'); 3 4 $str='you are sows'; 5 6 $number="1234567890"; 7 8 $name = "我吃飯"; 9 10 var_dump(strrev($str)); 11 var_dump(strrev($number)); 12 var_dump(strrev($name)); 13 14 ?> 15 16 =================== 17 結(jié)果: 18 string(12) "swos era uoy" //反轉(zhuǎn) “you are sows” 19 20 string(10) "0987654321" //反轉(zhuǎn) “1234567890” 21 22 string(9) "��鄶呈�" //反轉(zhuǎn) “"我吃飯” 23 24 =================== 25 說明: 26 反轉(zhuǎn)是從右到左,一個(gè)字節(jié)為單位進(jìn)行跳轉(zhuǎn)位置的 27 28 而字母、數(shù)字是以一個(gè)字節(jié)進(jìn)行儲(chǔ)存的,因此,顯示出我們想要的結(jié)果, 29 30 而中文需要三個(gè)字節(jié)進(jìn)行儲(chǔ)存的,與反轉(zhuǎn)的作法有所不利,于是,顯示所謂的亂碼 php--strrev-反轉(zhuǎn)?
==============
strrpos: 計(jì)算指定字符串在目標(biāo)字符串中最后一次出現(xiàn)的位置
語法:strrpos("字符串","子字符串");
1 <?php 2 header('Content-type:text/html;charset=utf-8'); 3 4 $str='you are sows'; 5 6 $str1='you are sows or are ceo'; 7 8 var_dump(strrpos($str,'are')); 9 10 var_dump(strrpos($str1,'are')); 11 12 ?> 13 14 ============================= 15 結(jié)果: 16 int(4) //'are'在'you are sows'中的,最后位置 17 18 int(16) //'are'在 'you are sows or are ceo'中的,最后位置 19 20 ============================= 21 說明: 22 一般不單獨(dú)使用,會(huì)其它代碼進(jìn)行結(jié)合一起使用 php--strrpos-計(jì)算子字符串在字符串中的最后一個(gè)位置?
?
==============
strrchr:?根據(jù)(最后一次出現(xiàn)的)子字符串來截取后半字符串
語法:strrchr("字符串",'子字符串');
1 <?php 2 header('Content-type:text/html;charset=utf-8'); 3 4 $str='you are sows'; 5 6 $str1='you are sows or are ceo'; 7 8 var_dump(strrchr($str,'o')); 9 10 var_dump(strrchr($str1,'are')); 11 12 ?> 13 14 ======================== 15 結(jié)果: 16 string(3) "ows" //截取'you are sows'中的 “ows” 17 18 string(7) "are ceo" //截取 'you are sows or are ceo' 19 20 ======================== 21 說明: 22 根據(jù)子字符串來截取后半部分的字符串 php--strtchr-根據(jù)子字符串來截取后半字符串?
==============
trim:去除字符串首尾處的空白字符(或者其他字符)
?
1 <?php 2 header('Content-type:text/html;charset=utf-8'); 3 4 $str=' you are sows '; 5 6 var_dump(strlen($str)); 7 8 var_dump(trim($str)); 9 10 ?> 11 12 ==================== 13 結(jié)果: 14 int(16) //字符串原來的效果 15 16 string(12) "you are sows" //去除字符串的空格后效果 php--trim-去除語句前后多余的空格、柳式?
?
時(shí)間函數(shù)
php中時(shí)間通常用整型存儲(chǔ)
1. time : 得到當(dāng)前時(shí)間的時(shí)間戳,是一個(gè)整型數(shù)據(jù)
語法: time();
1 <?php 2 echo time(); 3 ?> 4 5 ================= 6 結(jié)果: 7 1478138859 //動(dòng)態(tài)的數(shù)值 8 9 ================= 10 這個(gè)時(shí)間戳 11 從 1970/01/01 00:00:00 開始計(jì)算 12 單位是:秒 php--time-時(shí)間戳?
================
2.設(shè)置時(shí)區(qū)
1.? date.timezone? :設(shè)置默認(rèn)時(shí)區(qū) ?
2.? date_default_timezone_set : 設(shè)定用于一個(gè)腳本中所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū)
語法:date_default_timezone_set("表示時(shí)區(qū)的字符串");
例子:date_default_timezone_set('PRC'); ? //中國時(shí)區(qū)
3.? date_default_timezone_get :取得一個(gè)腳本中所有日期時(shí)間函數(shù)所使用的默認(rèn)時(shí)區(qū)?
================
3. date:時(shí)間戳按以一定的格式進(jìn)行轉(zhuǎn)化
語法:date("格式化的關(guān)鍵字符",時(shí)間戳[可選]);
1 <?php 2 date_default_timezone_set('PRC'); //設(shè)置時(shí)區(qū),防止編譯器找不到時(shí)區(qū) 3 4 var_dump(date('y-m-d h:i:s')); 5 6 var_dump(date('y-m-d',time())); 7 8 var_dump(date('T')); 9 ?> 10 11 ================== 12 結(jié)果: 13 string(17) "16-11-03 10:29:58" //使用系統(tǒng)默認(rèn)的時(shí)間戳,按年月日 時(shí)分秒的格式輸出 14 15 string(8) "16-11-03" //設(shè)置時(shí)間戳,按年月日的格式,輸出時(shí)間 16 17 string(3) "CST" //獲取當(dāng)前的時(shí)區(qū) php--date-格式化時(shí)間?
================
4.strtotime:?將任何英文文本的日期時(shí)間描述解析為 Unix 時(shí)間戳
語法:strtotime("描述時(shí)間的語句");
1 <?php 2 date_default_timezone_set('PRC'); 3 4 var_dump(strtotime('2016-08-04')); 5 6 var_dump(strtotime('Saturday')); //星期六 7 8 var_dump(strtotime('tomorrow')); //明天 9 10 var_dump(strtotime('next month')); //下個(gè)月 11 12 ?> 13 14 ======================== 15 結(jié)果: 描述時(shí)間的語句轉(zhuǎn)化成時(shí)間戳表示 16 int(1470240000) 17 18 int(1478275200) 19 20 int(1478188800) 21 22 int(1480733304) php--strtotime-描述時(shí)間的語句轉(zhuǎn)成時(shí)間戳?
?
================
5.microtime: 返回當(dāng)前 Unix 時(shí)間戳和微秒數(shù) ?? //有點(diǎn)問題
語法:microtime("")
1 <?php 2 date_default_timezone_set('PRC'); 3 4 var_dump(microtime('2016-08-04')); 5 6 var_dump(strtotime('2016-08-04')); 7 8 ?> 9 10 ===================== 11 結(jié)果: 12 float(1478141641.4529) // 13 14 int(1470240000) // 15 16 ===================== 17 提問: 整數(shù)部分。為什么不同 php--microtime-返回當(dāng)前 Unix 時(shí)間戳和微秒數(shù)?
數(shù)學(xué)函數(shù)
abs: 絕對(duì)值
acos: 反余弦
acosh:反雙曲余弦
asin: 反正弦
asinh: 反雙曲正弦
atan: 反正切
atanh:反雙曲正切
atan2: 兩個(gè)參數(shù)的反正切
=================
base_convert: 在任意進(jìn)制之間轉(zhuǎn)換數(shù)字
bindec: 二進(jìn)制轉(zhuǎn)換為十進(jìn)制
=================
ceil: 進(jìn)一法取整
cos: 余弦
cosh: 雙曲余弦
=================
decbin: 十進(jìn)制轉(zhuǎn)換為二進(jìn)制
dechex: 十進(jìn)制轉(zhuǎn)換為十六進(jìn)制
decoct: 十進(jìn)制轉(zhuǎn)換為八進(jìn)制
deg2rad: 將角度轉(zhuǎn)換為弧度
=================
exp: 計(jì)算e的指數(shù)
expm1: 返回exp(nubmer) -1,甚至當(dāng)number的值接近零也能計(jì)算出準(zhǔn)確結(jié)果
=================
floor: 舍去法取整
fmod: 返回除法的浮點(diǎn)數(shù)余數(shù)
=================
getrandmax: 顯示隨機(jī)數(shù)最大的可能值
=================
hexdex: 十六進(jìn)制轉(zhuǎn)換為十進(jìn)制
hypot: 計(jì)算直角三角形的斜邊長(zhǎng)度
=================
intdiv: 對(duì)除法結(jié)果取整
is_finite: 判斷是否為有限值
is_infinite: 判斷是否為無限值
is_nan: 判斷是否為合法數(shù)值
=================
lcg_value: 組合線性同余發(fā)生器
log10: 以10為底的對(duì)數(shù)
log1p: 返回log(1*number),甚至當(dāng)number的值接近零也能計(jì)算出準(zhǔn)確結(jié)果
log: 自然對(duì)數(shù)
=================
max: 找出最大值
min: 找出最小值
mt_getrandmax: 顯示隨機(jī)數(shù)的最大可能值
mt_rand: 生成更好的隨機(jī)數(shù)
mt_srand: 播下一個(gè)更好的隨機(jī)數(shù)發(fā)生器種子
=================
octdec: 八進(jìn)制轉(zhuǎn)換為十進(jìn)制
=================
pi: 得到圓周率值
pow: 指數(shù)表達(dá)式
=================
rad2deg: 將弧度數(shù)轉(zhuǎn)換為相應(yīng)的角度數(shù)
rand: 產(chǎn)生一個(gè)隨機(jī)整數(shù)
round: 對(duì)浮點(diǎn)數(shù)進(jìn)行四舍五入
=================
sin: 正弦
srand: 播下隨機(jī)數(shù)發(fā)生器種子
=================
tan: 正切
tanh: 雙曲正切
=================
語法:數(shù)學(xué)函數(shù)(數(shù)字)?? //參數(shù)視函數(shù)而定,
例如: abs(-65456); ? //獲取 -65456的絕對(duì)值
pi();?? //獲取圓周率
1 <?php 2 $number = -3432; 3 4 var_dump(abs($number)); //取絕對(duì)值 5 6 var_dump(decbin($number)); //十進(jìn)制轉(zhuǎn)換為二進(jìn)制 7 8 var_dump(dechex($number)); //十進(jìn)制轉(zhuǎn)換為十六進(jìn)制 9 10 var_dump(decoct($number)); //十進(jìn)制轉(zhuǎn)換為八進(jìn)制 11 12 var_dump(is_nan($number)); //判斷是否為合法數(shù)值 13 14 15 ?> 16 17 =================== 18 結(jié)果: 19 int(3432) //取絕對(duì)值 20 21 string(32) "11111111111111111111001010011000" //十進(jìn)制轉(zhuǎn)換為二進(jìn)制 22 23 string(8) "fffff298" //十進(jìn)制轉(zhuǎn)換為十六進(jìn)制 24 25 string(11) "37777771230" //十進(jìn)制轉(zhuǎn)換為八進(jìn)制 26 27 bool(false) //判斷是否為合法數(shù)值 php--math-數(shù)學(xué)函數(shù)使用示例?
==================
?
轉(zhuǎn)載于:https://www.cnblogs.com/sows/p/6017018.html
總結(jié)
以上是生活随笔為你收集整理的【风马一族_php】NO4_php基础知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS10 CallKit简单开发
- 下一篇: 读《图解HTTP》总结--第九章