PHP語言是一門后端語言(Hypertext Preprocessor,中文名:“超文本預處理器”)是一種通用開源腳本語言。語法吸收了C語言、Java和Perl的特點,利于學習,使用廣泛,主要適用于Web開發(fā)領(lǐng)域,它要想正常運行是需要運行環(huán)境支持的。也就是說我們平時所說的本地開發(fā)環(huán)境。因為PHP是一門主要是用來做網(wǎng)站的語言,因此,我們在搭PHP開發(fā)環(huán)境的時候,避免不了就是要同時安裝相關(guān)的web支持軟件。主要有以下幾種常用的:
(1)Apache、IIS、Nginx等web服務器
(2)PHP
(3)Mysql、SQLserver、Orcal等數(shù)據(jù)庫
WINDOWS上常用的集成安裝包很多,比如:Appserv,WAMP,phpstudy等,LINUX上有一款不錯的就是LNMP集成包。官方網(wǎng)站有詳細安裝使用說明,網(wǎng)址為:http://www.lnmp.org;
PHP開發(fā)軟件:“工欲善其事,必須利其器!”;
關(guān)于WAMP無法啟動Apache服務器的解決方案
1.如果是80端口被占用,那么修改httpd.conf文件
Listen 0.0.0.0:80
Listen [::0]:80
//修改為
Listen 0.0.0.0:8080
Listen [::0]:8080
修改完后重啟wampserver,或者是查看wamp中Apache里面的service測試80端口,查看是什么程序占用了80端口服務,然后關(guān)閉相應的程序;
2.如果80端口沒被占用,還是無法啟動Apache,則:
運行 cmd
cd 到 WampServer 安裝目錄 如 wamp\bin\apache\Apache2.x.x\bin
運行 httpd.exe -e debug
會提示 Apache 因何不能啟動
PHP基礎(chǔ)語法
<?php echo 'hello word';?>
PHP代碼可以放的位置,純PHP文件,不要結(jié)束的?>標記;
如果文件內(nèi)容是純 PHP 代碼,最好在文件末尾刪除 PHP 結(jié)束標記。這可以避免在 PHP 結(jié)束標記之后萬一意外加入了空格或者換行符,會導致 PHP 開始輸出這些空白,而腳本中此時并無輸出的意圖。
指令分隔符,和JS一樣就是一個英文的分號“;”
注釋和JS基本一樣,(js不能用#注釋)(#單行,//單行,/*多行*/);
PHP數(shù)據(jù)類型
整型 --比如:1,2,0
浮點型 --1.2,1.0
字符串 --非數(shù)字都是字符串,字符串必須用雙引號或單引號包起來。換句話說,數(shù)字被引號包起來,數(shù)字也就成了字數(shù)串。
布爾型 --真(true)或假(false)
對象 --Object
NULL --空 唯一個值就是NULL
NaN --Not a Number這不是一個數(shù)字
undefined --未定義
0,false,null,undefined,'',NaN,都代表假;
PHP單引號和雙引號區(qū)別及用法
單引號中的變量不會被解釋,雙引號中的變量是被解釋,編程過程中普通的字符串盡量用單引號,解析速度快;不像JS,引號中的任何字符都是字符串的一部分,PHP中雙引號里面的變量還是變量,不是字符串的一部分。
<?php
$int = 1;
echo '輸出$int';
echo "輸出$int";
PHP變量
變量以 $ 符號開頭,其后是變量的名稱,變量名稱必須以字母或下劃線開頭,變量名稱不能以數(shù)字開頭,變量名稱只能包含字母數(shù)字字符和下劃線(A-z、0-9 以及 _),變量名稱對大小寫敏感($y 與 $Y 是兩個不同的變量),不同的英文單詞之間建議使用下劃線“_”進行分隔比如$my_apple,$this是PHP的保留字,不能用來定義成一個自定義的變量;
PHP中定義大段文本內(nèi)容的語法:
<?php
header("Content-type:text/html;charset=utf-8");
$string = <<<GSY
這里定義大段文本內(nèi)容,我比定義普通字符串的容量還要大哦。
GSY;
echo $string;
Global定義全局變量說明:global $a;global只能用在function內(nèi)部;
<?php
$test = 123;
abc();
function abc() {
echo $test;
}
$test = 123;
abc();
function abc() {
global $test;
echo $test;
}
PHP中的可變變量:就是把變量名動態(tài)的設置和調(diào)用:
<?php
header("Content-type:text/html;charset=utf-8");//防止頁面出現(xiàn)亂碼
$str_name = 'string';
$string = 'I Like PHP';
echo $$str_name ;
PHP變量的值引用:變量的引用,也叫變量的值傳遞;就是一個&符號的在變量中的運用,例如:
$a = 1;
$b = &$a;
echo $b;
PHP超全局變量
PHP 中的許多預定義變量都是“超全局的”,這意味著它們在一個腳本的全部作用域中都可用。在函數(shù)或方法中無需使用關(guān)鍵字 global $variable; 就可以訪問它們。
這些超全局變量是:
- $GLOBALS —— 引用全局作用域中可用的全局變量
- $_SERVER —— 服務器和執(zhí)行環(huán)境信息
- $_REQUEST —— HTTP Request 變量
- $_POST —— HTTP POST 變量
- $_GET —— HTTP GET 變量
- $_FILES —— HTTP 文件上傳變量
- $_ENV —— 環(huán)境變量
- $_COOKIE —— 會話機制
- $_SESSION —— 會話機制
錯誤抑制符
@可以抑制錯誤的報道,例如數(shù)據(jù)庫連接、數(shù)據(jù)表的操作等,用的可能比較多。主要是放在一些可能會出現(xiàn)異常情況的函數(shù)前面。下面這個是文件刪除出錯被抑制。因此,雖然文件不存在,它也不會報錯。如果去掉@符號,下面的程序就要報文件不存在類似的錯誤了。
@unlink('e:/www/qinsiwang/www/001.html');
PHP常量定義
PHP中通常用define()函數(shù)來定義常量,關(guān)鍵字const也可用來定義常量,但必須是在(class)類文件內(nèi)部使用;
<?php
define('PI',3.1415926);//定義一個不變的圓周率
$r = 10;//假設圓半徑為10
echo '半徑為10個單位的圓面積是'.$r*PI;
包含語句
包含(也叫引入),主要是將其它文件引入到當前文件內(nèi)部使用。如同復制粘貼的原理。
include , include_once
require , require_once
區(qū)別:
(1)include和require遇到包含不存在的文件的時候,報錯級別不同。include報一個警告級別的錯誤,而require報一個致命級別錯誤。
(2)inlcude包含的文件不存在的時候,它后面的程序會繼續(xù)往下運行,而require后面的程序不再運行。
(3)帶_once的包含語句,在運行的時候會檢查這一行的前面有沒有包含,如果有,本次就不再包含,如果沒有,就包含。
語法舉例:
require '1.php';
echo 'hello';
PHP中的輸出語句
echo 輸出一個普通的變量
print_r($a)輸出數(shù)組或?qū)ο螅敵鰰r不帶類型
var_dump($a) 輸出任何類型的數(shù)據(jù),會帶數(shù)據(jù)類型
var_export($a) 輸出或返回一個變量的字符串表示,形式為符合原生PHP類型的語法形式
exit 程序結(jié)束命令
die('abc'); 輸出并停止運行
順便記一下PHP輸出當前的PHP配制信息函數(shù):
phpinfo();
PHP運算符
- 算術(shù)運算符
+ - * /
%取模:表示取余數(shù),/取的是商
例:
5 % 2 = 1;
5 / 2 = 2.5;
++ 累加 前加,后加
-- 累減 前減,后減
$i = 1;
echo $i++;
- 賦值運算符
=(賦值) += -= /= *= %=
- 比較運算符
== 兩邊的值進行比較
=== 全等,不僅比較值,還比較兩個值的類型
!= 不等于
!== 全不等于
> < >= <=
舉例說明:
$i = '1';
$r = 1;
if ($i == $r) {
echo '相等';
} else {
echo '不相等';
}
- 邏輯運算符
&& --and
|| --or
!非
- 三元運算符
$str = (5>1) ? '大于' : '小于';
流程控制語句
- 條件語句
//單一條件分支結(jié)構(gòu)
if (5>1) {
echo '大于';
} else{
echo '小于';
}
//多條件分支結(jié)構(gòu)
$result = 50;
if ($result >= 90) {
echo '優(yōu)秀';
} elseif ($result >= 60 and $result <= 90) {
echo '合格';
} else {
echo '不及格';
}
- for循環(huán)
for ($i=0;$i<=10;$i++) {
echo ($i%2) == 0 ? $i.'是偶數(shù)'.'<br>' : $i.'是奇數(shù)'.'<br>';
}
- switch循環(huán)
date_default_timezone_set('PRC');//Republic of China
$hour = date('H');
switch ($hour) {
case '08':
echo '早上好';
break;
case '12':
echo '中午好';
break;
case 17:
echo '下午好';
break;
default:
echo '您好';
break;
}
- while循環(huán)
$r = 1;
while ($r<0) {
echo $r.'<br>';
$r++;
}
- do while循環(huán)
$r = 1;
do {
echo $r;
} while($r<0);
- foreach循環(huán)
$arr = array('name'=>'張三','age'=>24,'sex'=>'男');
foreach ($arr as $key => $value) {
echo '下標為:'.$key.'的值為:'.$value.'<br>';
}
//$key是可以省略的,$value不能省略,$key和$value只是一個變量名,不固定不變的名稱
- 補充說明
break;
在循環(huán)語句里,遇到break,程序就直接跳出循環(huán)體。不再運行循環(huán)體里面的程序。
continue;
在循環(huán)語句里,遇到continue,程序會回到循環(huán)語句的起始位置重新開始循環(huán)。continue之后的語句本次不再運行。
計算程序運行時間
PHP數(shù)組
數(shù)組是對大量數(shù)據(jù)進行組織和管理的有效手段之一,通過數(shù)組的強大功能,可以對大量性質(zhì)相同的數(shù)據(jù)進行存儲、排序、插入及刪除等操作,從而可以有效的提高程序開發(fā)效率以及改善程序的編寫方式。
數(shù)組有多種表現(xiàn)形式以及靈活性,數(shù)組的維數(shù),主要看括號有幾層。
在PHP中有兩種數(shù)組:索引數(shù)組和關(guān)聯(lián)數(shù)組。
PHP的超時控制
php腳本文件默認的運行超時時間是30秒,即運行超過30秒無返回結(jié)果,則php腳本會提示超時錯誤。但是有時候確實有超過30運行時間限制的需求,這里講解幾種方法來調(diào)整這個時間限制。
1、打開php.ini文件,找到 max_execution_time,將后面的數(shù)字改成你想要的時間,單位是秒。
這種方式修改后需要重啟服務,一般不建議采用這種方法。
2、使用PHP的ini_set()函數(shù)設置,設置方法:
ini_set("max_execution_time",1800);
設置語句必須是php文件的第一行。
3、使用PHP的set_time_limit()函數(shù)設置,設置方法:
set_time_limit(1800);
設置語句必須是php文件的第一行。
任務
反復練習數(shù)組的創(chuàng)建,并運用所學循環(huán)語句進行循環(huán)輸出;