當前位置:工程項目OA系統(tǒng) > 泛普各地 > 江西OA系統(tǒng) > 南昌OA系統(tǒng) > 南昌網站建設公司
基礎PHP小知識分享
一、require 和 require_once的區(qū)別
require 和 require_once兩個的引用方法沒有什么區(qū)別;他們的區(qū)別在于使用require每引用一次文件中的代碼就會被執(zhí)行一次,而使用require_once函數則不然,如果目標文件中的代碼已經被包含了,則不會再次被包含。
二、require 和 include 的區(qū)別
在使用上兩者沒有本質的區(qū)別。兩者的區(qū)別體現在當目標文件不存在時的處理方法上。
如果引用的文件不存在,include將會產生一個警告;require則會導致一個致命的錯誤。換句話說,如果想在丟失文件時停止處理頁面,可以使用require方法。而include則不會這樣,即便出錯,腳本也會繼續(xù)運行。
如:當使用require時
<?php
require "hello1.php";
echo '<br>';
require_once ("hello.php");
?>
顯示的結果:
Warning: include(hello1.php) [function.include]: failed to open stream: No such file or directory in D:AppServwwwlianxidiaoyong.php on line 2
Warning: include() [function.include]: Failed opening 'hello1.php' for inclusion (include_path='.;C:php5pear') in D:AppServwwwlianxidiaoyong.php on line 2
腳本出現錯誤,require_once 調用的函數不會被執(zhí)行。
當使用include時:
<?php
include "hello1.php";
echo '<br>';
require_once ("hello.php");
?>
顯示的結果:
Warning: include(hello1.php) [function.include]: failed to open stream: No such file or directory in D:AppServwwwlianxidiaoyong.php on line 2
Warning: include() [function.include]: Failed opening 'hello1.php' for inclusion (include_path='.;C:php5pear') in D:AppServwwwlianxidiaoyong.php on line 2
hello world
即使腳本出現錯誤,require_once調用的函數也會被執(zhí)行。
三、PHP中的常量的值只包括4種類型:
整型(整數)integer
浮點型 float(含小數點得數)
字符型 string(字符與字符串)
布爾型 boolean (布爾值)
四、數據類型分類
數據類型分為3大類共8種類型:
1、最基本的4種類型:
boolean (布爾型)
integer (整型)
float (浮點型)
string (字符串型)
2、符合型數據
array (數組)
object (對象)
3、最特殊的數據類型
resource (資源)
NULL (無值) 注:使用unset()函數可以注銷一個變量
五、查看一個函數的類型我們可以使用
gettype() 函數
該函數的語法格式代碼如下
string gettype (mixed var)
六、自定義常量的函數
define()
該函數的語法格式代碼如下
bool define(string name, mixed value[,bool case_insensitive])
如,定義一個HOSTNAME的常量
define ("HOSTNAME","localhost");
七、當將自定義函數的的可選項case_insensitive設置為true時定義的常量將會 忽略大小寫。
八、獲取所有預定義的PHP常量
get_defined_constants()
該函數的語法格式代碼如下:
array get_defined_constants([mixed categorize])
可選參數categorize,該參數用于指定是否把系統(tǒng)中的常量按照其各自所屬的 分類輸出。
九、魔術常量
魔術常量屬于系統(tǒng)常量的一種,與普通的系統(tǒng)常量不同,該類常量在不同的 PHP文件中將會有不同的值。
1、__LINE__, 指代當前代碼所在行數。
2、__FILE__, 指代當前文件的路徑名。
3、__FUNCTION__, 指代當前被調用的函數名。
4、__CLASS__ , 指代類的名稱名。
5、__METHOD__, 指代類的方法名。
十、比較運算符
比較運算符用于對不同的內容進行大于、小于、等于及不等于類似的比較操 作。
== (等于),該運算符如果前后內容相等則返回TRUE,反之則返回FALSE
=== (全等于),該運算符如果前后內容相等并且類型一致則返回TRUE,反之則 返回FALSE。
!= (不等), 該運算符如果前后內容不相等則返回TRUE,反之則返回FALSE
<> (不等), 該運算符如果前后內容不相等則返回TRUE,反之則返回FALSE
!== (非全等),該運算符如果前后內容不全等則返回TRUE,反之則返回FALSE
< (小于), 該運算符如果前面的值小于后面的值則返回TRUE,反之則返回 FALSE。
> (大于), 該運算符如果前面的值大于后面的值則返回TRUE,反之則返回 FALSE。
<= (小于等于),該運算符如果前面的值小于等于后面的值則返回TRUE,反 之則返回FALSE。
>= (大于等于),該運算符如果前面的值大于等于后面的值則返回TRUE,反之 則返回FALSE。
十一、邏輯運算符
PHP中得邏輯運算符用于處理邏輯與、邏輯或、邏輯異或及邏輯非等邏輯關 系并返回相應的布爾值。
and (邏輯與),該運算符如果前后的兩個值均為TRUE則返回TRUE,反之返回 FALSE。
or (邏輯或),該運算符如果前后的兩個值中至少有一個為TRUE返回TURE, 反之(如果沒有一個TRUE)FALSE。
xor (邏輯異或),該運算符如果前后兩個值不同(一個為TRUE,另一個為 FALSE)則返回TRUE,反之(兩者相同)則返回FALSE。
! (邏輯非),該運算符號如果其后面的值為FALSE則返回TRUE,反之則返回 FALSE。
&& (邏輯與),同and(優(yōu)先等級不同)。
|| (邏輯或),同or (優(yōu)先等級不同)。
十二、遞增/遞減運算符
PHP中也支持C語言風格的前/后遞增與遞減運算符。PHP中得遞增/遞減運算 符包括一下幾種:
++$a (前加),$a的值加1,然后返回$a; ($a的值先加一,在返回$a)
$a++ (后加),返回$a,然后將$a的值加1;
--$a (前減),$a的值減1,然后返回$a;
$a-- (后減),返回$a,然后將$a的值減1; ($a的值先返回$a,在減一)
注:從上面可以看出:前加(減)是先加(減)再返回值,而后加(減)則是先返 回值再加(減)。
十三、三目運算符
三目運算符由兩個表示符號即問號、冒號等組成。其語法格式如下:
(expr1)?(expr2):(expr3);
語句的意思是:當expr1為TRUE時返回expr2當expr1為FALSE時返回expr3。
十四、流程控制語句
1、if 判斷;
語法:if(expr)
{
statement
.........
}
2、if....else 判斷;
語法:if(expr)
{
statement1;
}
else
{
statement2;
}
3、if....elseif....else 多重判斷;
語法:if(expr)
{
statement1;
}
elseif(expr2)
{
statement2;
}
elseif(expr3)
{
statement3;
}
........
else
{
statementN;
}
4、switch 判斷;
語法: switch($var)
{
case value1;
statment1;
break;
case value2;
statment2;
break;
.......
default:
statmentN;
}
也可以使用以下的語法替代格式:
switch($var):
case value1:
statment1;
break;
case value2:
statment2;
break;
.......
default:
statmentN;
endswitch;
5、while 循環(huán);
語法格式: while(expr)
{
........
statment;
}
6、do 循環(huán);
語法格式:do
{
........
statement;
}
while(expr);
7、for 循環(huán);
語法格式:for (expr1; expr2; expr3)
{
......
statement;
}
常見的格式:for ($i=1; $i<6; $i++)
{
...........
statement;
}
8、foreach 循環(huán);
語法格式: foreach (array_expression as $value)
{
statement;
}
foreach (array_expression as $key => $value)
{
statement;
}
解釋:
(一)、if 判斷是所有的判斷中最簡單的一種。因為其只判斷條件為真的一 種情況,所以也被稱為單重判斷。
(二)、if....else.... 判斷語句在判斷條件為假時不會執(zhí)行指定語句,卻 會執(zhí)行程序所設定的另外的語句。
(三)、if....elseif...else... 判斷語句時,為了提高效率,一定要把最 有可能為真的語句放到最前面,而把最不可能出現的情況放在最后面。這 樣當遇到判斷條件問真時,就不用在執(zhí)行后面的內容。
(四)、switch 判斷語句的使用限制。與if elseif else判斷不同,switch 僅能用于判斷的內容是一個變量的情況,而其中case后面跟的判斷結果都 應該是一個值而不能是一個表達式。而if elseif else在這方面則更加自 由,其中的判斷內容可以是任意的表達式。
注意:switch 判斷語句,如果在case后面不加break語句,則switch 會一直執(zhí)行到最后一句case后面的內容。所以,通常情況下都需要在每個 case后面加上break語句,以使case執(zhí)行之后跳出整個判斷過程。
(五)、do循環(huán)和while循環(huán)的區(qū)別:
他們的區(qū)別在于:while循環(huán)當條件不滿足時,跳出循環(huán),do循環(huán)無論條件 滿足還是不滿足,首先執(zhí)行一次。
(六)、for 循環(huán)中需要三項內容,expr1,expr2,expr3分別為三個表達式,
第一個表達式(expr1)在循環(huán)開始前無條件求值一次;expr2在每次循環(huán)開
始前求值,如果值為TRUE,則繼續(xù)執(zhí)行循環(huán)體的語句statement。如果值為
FALSE則終止循環(huán),expr3在每次循環(huán)之后被求值(執(zhí)行)。
for循環(huán)與while循環(huán)的比較:
while循環(huán)在知道什么情況下執(zhí)行循環(huán)時相對方便;而for循環(huán)更適合于事 先知道循環(huán)次數的場合。
(七)、foreach 開始執(zhí)行時,數組內部的指針會自動指向第一個單元,這 意味著不需要在foreach循環(huán)之前調用reset()(重置數組)。并在每次循環(huán) 時自動向前移一步。
(八)、break 和 continue 的區(qū)別
break 和 continue 都有跳出循環(huán)的作用,
break主要是無條件的跳出整個循環(huán),continue則是無條件的跳出本 次循環(huán),繼續(xù)執(zhí)行后面的循環(huán)。
使用if判斷語句和continue語句時,如果將它們放到最前面將會造成死循 環(huán)。
十五、用編程的思想解決百錢百雞問題
有100文錢,買100只雞,規(guī)定100只雞中公雞、母雞和小雞。買一只公雞需 要5文錢,買一只母雞需要3文錢,買三只小雞需要1文錢,問:怎樣才能湊 成百錢買百雞?
代碼如下:
<?php
$i=0;
for($x=0;$x<20;$x++)
{
for($y=0;$y<100-$x;$y++)
{
$z=100-$x-$y;
if(5*$x+3*$y+$z/3==100)
{
$i++;
echo "第".$i."種方案:";
echo "公雞數位:";
echo $x." ";
echo "母雞數位:";
echo $y." ";
echo "小雞數位:";
echo $z." ";
echo "<p>";
}
}
}
?>
十六、PHP中的函數
函數的定義:簡單的說,函數是為了完成特定的功能而整體存在的一個代 碼塊。所以從函數的定義來說,函數的實質就是代碼的集合,也就是一段 能獨立完成某種操作的代碼。
十七、PHP中函數的定義樣式:
function fun_name(var_name....)
{
/*
這里是具體的代碼
*/
}
所以定義一個函數,使用function關鍵字+函數名稱+加一對半角括號,并 在括號中加上所需要的參數表,然后用一對大括號來包括所有需要執(zhí)行的
代碼即可。
十八、定義函數是需要遵循的原則
1、函數名必須依字母開頭。
2、函數名只能依字母、數字和下劃線組成,而不能包含空格、標點符號及 運算符等其他特殊的符號。
3、函數名不能與PHP中的關鍵字名稱相同,如if、else、for等
4、變量名不能與PHP中系統(tǒng)內部庫函數名稱相同。
十九、函數的返回值
自定義函數中如果要設置一個返回值,可以使用如下代碼
function functionname()
{
//函數體
return result;
}
在函數體中使用return語句再加上欲返回的內容即可。這樣指定的值 result就會作為函數值被返回。
二十、函數的參數
在PHP中函數的參數就是寫在函數名稱后圓括號內常量、變量、表達式,在 這幾種類型中以變量使用的最廣泛。
函數的創(chuàng)建代碼
function functionname(var_name...)
{
/*
這里是具體的代碼
*/
}
二十一、面向對象
面向對象的做法通常是為了完成某一個功能,要先定義一個類,并給該 類添加相應的方法。然后再為這個類初始化一個對象,讓對象去執(zhí)行相應 的方法,從而完成所需要的功能。
二十二、面向對象與面向過程的特點
1、代碼的封裝不同。
“面向過程”程序設計的方法使用函數或者普通的代碼對數據進行操作 ,在這種方式下使用函數來處理數據,而函數又是與數據分離的,所以 面向過程僅封裝了對數據的操作方法而沒有封裝數據。
“面向對象”程序設計方法是以對象為中心,使用類將數據(屬性)和對 數據的操作(方法)封裝在一起,作為已給整體來處理,通過這樣的封裝 ,使得數據與操作方法的關系更加緊密。
2、代碼可維護性不同。
“面向過程”程序設計方法以代碼所要實現的功能來設計功能模塊(如 函數),該種方法難以維護
“面向對象”程序設計方法以數據位中心來描述系統(tǒng),功能實現千變萬 化,有時一點很小的功能改動可能會導致全盤重做,而數據則相對穩(wěn)定 ,即使發(fā)生變化,只需要改動相應內容即可。所以面向對象的代碼比面 向過程的代碼更加容易維護。
3、流程控制不同。
“面向過程”程序的控制流程由程序中預定順序來決定,所以說其流程 是死板的。
“面向對象”程序的控制流程由運行時各種事件的實際發(fā)生來觸發(fā),而 不在由預定順序來決定。這中流程的控制方式更加靈活,也更符合實際 需要。
4、框架利用不同。
如今網絡技術飛速發(fā)展,網上有非常多得開源框架資源,面向對象程序 設計方法可以充分利用已有的框架產品進行二次開發(fā);這種方面,使用 面向過程,雖然可以使用一些函數之類來完成相關功能模塊的構建,但 遠不如使用己有框架來的方便。
通過以上的比較可以發(fā)現,面向對象與面向過程二者各有有缺點。在實際 工作中,如果是開發(fā)團隊協同工作大型程序,最好采用面對對象編程的方 法。如果是個人開發(fā)的小型程序,而且工作量不大,可以根據實際情況采 用自己喜歡的方法。
二十三、PHP中定義一個類的語法格式:
class classname
{
var $var;
function functionname()
{
....
statement;
}
}
二十四、為類實例化對象
$obj_name=new classname;
以上代碼中,classname為指定已經存在的類的名稱,而$obj_name則為 需要對類實例化的對象。在PHP中為類實例化一個獨享應該在創(chuàng)建類之后 ,使用"new" 關鍵字在跟上類的名稱即可。
二十五、使用對象
$obj_name=new classname;
$obj_name->varname;
$obj_name->functionname();
以上代碼中我們可以看出,PHP中調用對象的屬性和方法使用"->"操作符號 加上屬性的名稱或方法的名稱。這里需要注意,調用對象屬性(變量)時不 需要再加"$"符號,而調用對象方法(函數)時需要在函數名后在加上括號。 對象屬性就可以當做普通變量使用,而其他方法也可以當做普通函數使用 。
二十六、類的繼承
繼承是一種由己有地類創(chuàng)建新類的機制,利用繼承,用戶可以先創(chuàng)建一個 共有屬性的一般類,根據該一般類再創(chuàng)建具有特殊屬性的新類。新類繼承 一般類的狀態(tài)和行為,并根據需要增加它自己的新的狀態(tài)和行為。由繼承 而得到的類稱為子類,被繼承的類稱為父類。在php中使用關鍵字extends 來創(chuàng)建繼承父類的子類。
語法格式:
class parent_class
{
var $varname
function functionname()
{
.......
statement;
}
}
class child_class extends parent_class
{
var $var
function function()
{
.....
statement;
}
}
二十七、類的引用
類的引用就是值在一個類中使用另一個類中定義的屬性和方法。要在一 個類中引用另一個類的內容,
可以使用如下代碼格式:
class classname
{
var $varname;
function functionname()
{
......
statement;
}
}
class otherclass
{
classname::functionname();
classname::$varname;
}
在一個類中引用另一個類的屬性和方法,需要使用類的名稱加上"::"再 加上方法或者屬性名稱既可(方法需要跟上參數表,屬性需要加美元符號 )。
二十八、類的構造方法
類的構造函數是在為類實例化一個對象是會執(zhí)行的一個方法。在PHP中使 用特殊的函數__construct()來表示類的構造方法(雙下劃線加construct 加上一對括號來表示)。構造函數一般用于初始化類的一些重要屬性。
其語法格式:
class classname
{
var $var;
function __construct([$var])
{
......
}
}
在一個類中只能聲明一個構造方法,而且只有在每次創(chuàng)建對象時調用一
次構造方法,不能主動地調用這個方法。所以通常用構造方法執(zhí)行一些
有用的初始化任務。如對對象屬性在創(chuàng)建時賦初值。
二十九、檢查類是否定義
PHP系統(tǒng)總檢查類是否被定義用 class_exists(),語法格式:
bool class_exists(string $class_name[,bool $autoload])
三十、 返回類的方法名
PHP中系統(tǒng)函數中得get_class_methods()函數,可以將類的方法以數組
的形式返回,該函數的語法格式:
array get_class_methods(string $class_name)
三十一、返回類的屬性
PHP還可以使用系統(tǒng)函數返回類中屬性的名稱。使用get_class_vars()即
可返回由類的默認屬性組成的數組。該代碼的語法格式:
array get_class_vars(string $class_name)
三十二、返回對象的類名
使用PHP中得系統(tǒng)函數get_class()可以返回指定對象所屬的類的名稱。
該函數的語法格式如下:
string get_class([object $obj])
三十三、檢查類與對象的關系
PHP提供了用于檢查類與對象關系的關鍵字:instanceof,使用該關鍵字
可以判斷某一個對象是否是類的子類。該操作符的語法格式如下:
$object instanceof $class_name
三十四、檢查方法是否存在
PHP中用于檢查類中指定方法是否存在的函數是:method_exists()
該函數的語法格式如下:
bool method_exists(object $object,string $mothod_name)
三十五、檢查屬性是否存在
PHP中使用property_exists()函數可以檢查屬性是否存在
該函數的語法格式為:
bool property_exists(mixed $class,string $property)
三十六、數據庫的操作
鏈接到數據庫:
使用PHP中得函數mysql_connect()可以鏈接到指定的MySQL服務器,
該函數語法為:
resource mysql_connect([string server[,string username [,string password[,bool new_link[,int client_flags]]]]])
以上代碼中:參數server為服務器名稱;參數username為鏈接服務器的
用戶名;參數password為連接密碼;參數new_link為布爾型變量,指定
是否建立一個姓的連接;參數client_flags可以是一下常量的組合,
MYSQL_CLIENT_SSL, MYSQL_CLIENT_COMPRESS, MYSQL_CLIENT_IGNORE_SPACE, MYSQL_CLIENT_INTERACTIVE,
該參數決定建立連接的客戶端常量。如果成功執(zhí)行函數將會建立到指定
服務器的連接,否則將會返回FALSE。
- 1SEOer要學會尋找優(yōu)質外鏈
- 2ECSHOP怎樣去除版權
- 3關鍵字排名優(yōu)化服務
- 4seo搜索引擎優(yōu)化的秘訣
- 5開發(fā)在制作的時候就要從購房者的角度去考慮
- 6不能因為有了好用的熱水器就毫無節(jié)制的洗澡
- 7計件工資系統(tǒng)分享—企業(yè)ERP系統(tǒng)失敗的三大原因
- 8電子郵件加密傳輸
- 9義烏手機APP程序開發(fā)三條妙招助企業(yè)應用開發(fā)
- 10連鎖式經營的管理辦法
- 11為防止水堿、水垢大量附著在熱水器內膽內
- 12八種賺不到錢的站長
- 13什么樣的網站是電子商務網站?
- 14義烏軟件公司分享ERP系統(tǒng)需要用戶需求統(tǒng)一
- 15企業(yè)培訓機構網站設計方案
- 16怎么查看別人的微信聊天記錄內容
- 17測試一下你的搜索引擎收錄
- 18中揚科技做臨沂最專業(yè)的APP
- 19ONU的主要特點
- 20細談虛擬主機常見問題
- 21域名解析常見問題
- 22母體專為新生寶寶準備絕無僅有的特別營養(yǎng)食物
- 23淺談搜索引擎對新站收錄的要求
- 24作為站長怎樣快速增加流量
- 25PHP + AJAXauxin分頁
- 26域名解析和DNS修改的區(qū)別
- 27為大家詳細介紹沙盤模型在建筑物中作用有哪些
- 28ERP系統(tǒng)與SCM系統(tǒng)七大重疊功能
- 29現在很多購房者在買房前都忽略看沙盤這一項
- 30網站優(yōu)化價位是多少
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓