PHP基础

简介
PHP (超文本预处理器)原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。据统计,从2003 年开始,我国的网页规模基本保持了翻番的增长速度,并且呈上升趋势。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。 

根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时,PHP语言具有较高的数据传送处理水平和输出水平,可以广泛应用在Windows系统及各类Web服务器中。如果数据量较大,PHP语言还可以拓宽链接面,与各种数据库相连,缓解数据存储、检索及维护压力。随着技术的发展,PHP 语言搜索引擎还可以量体裁衣,实行个性化服务,如根据客户的喜好进行分类收集储存,极大提高了数据运行效率。 


主要特点
(一)开源性和免费性

由于PHP的解释器的源代码是公开的,所以安全系数较高的网站可以自己更改PHP的解释程序。另外,PHP 运行环境的使用也是免费的。

(二)快捷性

PHP是一种非常容易学习和使用的一门语言,它的语法特点类似于C语言,但又没有C语言复杂的地址操作,而且又加入了面向对象的概念,再加上它具有简洁的语法规则,使得它操作编辑非常简单,实用性很强。 

(三)数据库连接的广泛性

PHP可以与很多主流的数据库建立起连接,如MySQL、ODBC、Oracle等,PHP是利用编译的不同函数与这些数据库建立起连接的,PHPLIB就是常用的为一般事务提供的基库。 

(四)面向过程和面向对象并用

在PHP语言的使用中,可以分别使用面向过程和面向对象, 而且可以将PHP面向过程和面向对象两者一起混用,这是其它很多编程语言做不到的。 


优点
(一)流行,容易上手

PHP是目前最流行的编程语言,这毋庸置疑。它驱动全球超过2亿多个网站,有全球超过81.7%的公共网站在服务器端采用PHP。PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。 

(二)开发职位很多

在服务器端的网站编程中PHP会更容易帮助你找到工作。很多互联网相关企业都在使用PHP开发框架,所以可以说市场对PHP的开发程序员的需求还是比较大的。 

(三)仍然在不断发展

PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用。 

(四)可植入性强

PHP 语言在补丁漏洞升级过程中,核心部分植入简单易行,且速度快。 

(五)拓展性强

PHP 语言在数据库应用过程中,可以从数据库调取各类数据,执行效率高。 


缺点
(一)PHP的解释运行机制

在 PHP 中,所有的变量都是页面级的,无论是全局变量, 还是类的静态成员,都会在页面执行完毕后被清空。

(二)设计缺陷,缺少关注PHP被称作是不透明的语言,因为没有堆栈追踪,各种脆弱的输入。没有一个明确的设计哲学。早期的PHP受到Perl的影响,带有out参数的标准库又是有C语言引入,面向对象的部分又是从 C++和Java学来的。

(三)对递归的不良支持

PHP并不擅长递归。它能容忍的递归函数的数量限制和其他语言比起来明显少。

PHP 语法
<?php   //注意?跟PHP之间没有空格
echo "Hello World !"; //每句以 ; 结束
?>
 

注释:
//......单行注释

#...... 单行注释

/*..........*/ 多行注释

变量:
$array=NAME;    变量名必须以字母或者下划线开始,不能用数字开头,中间不能有空格! 大小写敏感!

$x=5;  $X=7;  输出为不同结果

<?php

$a = 1;

$A = 2;

echo $a . "<br>";

echo $A;

?>

局部变量

<?php

$a=1; //全局变量

function test() { //声明一个函数,名字为 test

    $a=15; //函数内的变量,为局部变量

    echo "内部输出结果:".$a;

    }

test();

echo "<br>";

echo "外部输出结果:".$a;

?>

<?php

$a=1;

function test() { //声明一个函数,名字为 test

    global $a; //在函数内声明并引用外部变量,注意这里是小写 global

    echo $a;

    echo "<br>";

}

test(); //使用函数

echo $a;

?>

<?php

$a=10;

$b=20;

$c=30;

function test() {    

$a=100;

$GLOBALS['a']=$GLOBALS['b']+$GLOBALS['c']; //引用全局变量,这里的 GLOBALS 必须大写

  echo $a."<br>";

}

Test(); //函数名不区分大小写

 echo "<br>";

echo $a;

?>

<?php

function test() {

    static $a = 0; //静态作用域,保留变量值

    echo $a . "";

    $a++;

}

test();//不使用static的话,每次输出都是 0

echo "<br>";

test();

echo "<br>";

test();

?>

parameter 参数作用域
<?php

$a = 10;

$b = 20;

function test() {

    $a = 30;

    $b = 40;

    $c = $a + $b;

    echo  "函数内运算值:".$c;

    echo "<br>";

}

test();

$c = $a + $b;

echo "函数外运算值:".$c;

?>

echo 和 print 的区别:

echo "123","456","789";//能够连续输出多个字符串

print "123","456";  //输出错误

换行符:

echo "<br />";

echo "\n";

echo PHP_EOL; //换行符

返回变量类型: var_dump

<?php

$a = "1111";

$b = 123;

$c = null;

echo var_dump($a) . "<br>";

echo var_dump($b) . "<br>";

echo var_dump($c) . "<br>";

$d = array('a', 1, abc); //数组

echo var_dump($d) . "<br>";

$e = true;

echo var_dump($e);

?>

<?php

$text1="ni hao";

$text2="hahaha";

echo $text1."        ".$text2."<br>"; //引用多个变量用 点 . (英文)连接     为空格

$a = strlen($text1);//计算字符串长度数

echo $a;

?>//空格也算作一个字符

强引用和弱引用 

<?php

$text1 = "ni hao";

echo "$text1" . "<br>";// “ ” 双引号输出会显示变量值

echo '$text1';// ‘’ 单引号会显示变量名本身 

?>

自增自减输出

<?php

$x = 10;

echo ++$x;//先自增后输出

echo "<br>";

$a=15;

echo --$a . "<br>";//先自减后输出

$y = 20;

echo $y++ . "<br>";//先输出后自增

$b=30;

echo $b--;//先自增后输出

?>

if 条件判断

<?php

$x = 10;

$y = 20;

if ($x > $y) {//判断 x 和 y 的大小,如果满足 $x > $y 就输出 true 

    echo "true";

}else if($x==$y) {//else if 如果上面的判断不满足,再次判断  $x==$y  是否相等 ,如果满足就输出  $x."等于"$y;

    echo $x."等于"$y;

}

else {//如果上面的判断都不满足就输出 false

    echo "false";

}

?>

<?php

$x= (3>4)? "true":"false";//三元运算符

echo $x;

?>

switch 判断

<?php

$a="abc";

switch ($a) {

    case 'red':

        echo "red";

        break; //跳出整个循环体,continue跳出本次循环体,继续执行后面的循环体。

    case 'green':

        echo "green";

        break;

    case 'black':

        echo "black";

        break;

    default:

        echo "not color";

}

?>

数组

<?php

$cars = array("BMW", "BinLi", "大众");

echo "I like " . "$cars[0]", "  ", "$cars[1]", "  ", "$cars[2]";

?>

<?php

$cars = array();

$cars[0] = "BMW";

$cars[1] = "BINlix";

$cars[2] = "大众";

echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]";

?>

<?php

$cars = array();

$cars[0] = "BMW";

$cars[1] = "BINlix";

$cars[2] = "大众";

echo count($cars) . "<br>";// count 返回数组长度

echo "I like " . "$cars[0]", " ", "$cars[1]", " ", "$cars[2]";

?>

count 获取数组的长度

var_dump() 返还数据类型

strlen(); 返回字符串长度

array(); 创建数组

$arrayname=array('name' =>"icq",'age'=>20,'gender'=>true); //关联型数组

echo $arrayname["name"];

$arrayName=array('1',"zhangsan",20,false,"beijingchangping");//数字型数组

echo $arrayName[3]; //布尔型 true 打印显示1

for 循环 遍历数组:

    <?php

$cars = array("BMW", "BinLi", "大众");

$arrlength = count($cars);

for ($x = 0; $x < $arrlength; $x++) {

    echo $cars[$x] . "<br>";

}//只输出值

?>

    <?php

$cars = array("BMW", "BinLi", "大众");

$arrlength = count($cars);

print_r($cars);//数据类型,下标值,值都打印出来

?>

关联数组:
<?php

$age = array("gao" => "30", "li" => "20", "zhang" => "10");

echo "gao is    " . "  " . $age['gao'] . "  " . "     years old.";

?>

关联数组2:
<?php

$age = array();

$age["sun"] = ["20"];

$age["liu"] = ["30"];

$age["zhang"] = ["40"];

print_r($age);

?>

多维数组

<?php

$cars = array(

    array("111", 100, 50),

    array("222", 200, 100),

    array("333", 300, 150),

);

echo $cars[1][0];

?>

<?php

$age = array();

$age["sun"] = ["20"];

$age["liu"] = ["30"];

$age["zhang"] = ["40"];

// print_r($age);

foreach ($age as $key => $value) {

    echo "name is     " . $key . "   old    " . $value . "<br>";

}

?>

排序:

<?php

$cars = array("Blinli", "wzida", "muling");

$x = sort($cars);

echo $x;

print_r($cars);

?>

<?php

$cars = array("Blinli", "wzida", "muling");

$x = rsort($cars);

echo $x;

print_r($cars);

?>

$GLOBALS — 引用全局作用域中可用的全部变量
<?php

$x = 10;

$y = 29;

function add() {

    // global $x, $y;

    // $z = $x + $y;

    // echo $z;

    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];

    echo $GLOBALS['z'];

}

add();

?>

PHP $_REQUEST 用于收集 HTML 表单提交的数据

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

</head>

<body>

    <form method="POST" action="request.php">

        name:<input type="text" name="name">

        <br>

        <input type="submit" name="submit">

</body>

</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值