php基础汇总

Posted eyes++

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php基础汇总相关的知识,希望对你有一定的参考价值。

零: php介绍

PHP (全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一款免费开源的服务器端脚本语言。PHP文件可包含文本、htmljavascript代码和PHP代码,PHP代码在服务器上执行,结果以纯HTML形式返回给浏览器。

PHP的功能:

PHP 可以生成动态页面内容
PHP 可以创建、打开、读取、写入、关闭服务器上的文件
PHP 可以收集表单数据
PHP 可以发送和接收 cookies
PHP 可以添加、删除、修改您的数据库中的数据
PHP 可以限制用户访问您的网站上的一些页面
PHP 可以加密数据

PHP的优点:

PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等)
PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
PHP 提供了广泛的数据库支持
PHP 是免费的,可从官方的 PHP 资源下载它: www.php.net
PHP 易于学习,并可高效地运行在服务器端

一: 基础语法

(1). php文件可包含多种成分

纯php代码:

<?php
echo "hello world";

html代码和php代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
<p>HTML</p>
<?php
    echo "hello world";
?>
</body>
</html>

(2).变量

php变量规则:

变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的($y 和 $Y 是两个不同的变量)
PHP是弱类型语言,声明变量时不必声明数据类型,php会自动转换数据类型

展示:

<?php
$x = 5;
$y = 6.1;
$z = -2;
$sum = $x + $y + $z;
echo $sum;
$str = "hello";
echo $str;

(3).常量

常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
使用常量时,不能在常量名前添加$ 符号,不然会将常量转换成新的未定义变量使用,会导致报错。
注意: 常量在整个脚本中都可以使用。

设置常量,使用 define() 函数,函数语法如下:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

该函数有三个参数:

name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
<?php

// 区分大小写的常量名
define("GREETING", "hello php");
echo GREETING;    // 输出 "hello php"
echo '<br>';
echo greeting;   // 输出 "greeting"
echo '<br>';

// 不区分大小写的常量名
define("GREET", "hello world", true);
echo GREET;    // 输出 "hello world"
echo '<br>';
echo greet;  // 输出 "hello world"
echo '<br>';

// 常量是全局的
define("A", "it's a test.");

function myTest() {
    echo A;
    define("B", "it's also a test.");
}

myTest();    // 输出 "it's a test"

echo B;   // 输出 "it's also a test"

(4).作用域

变量的作用域是脚本中变量可被引用/使用的部分,PHP有四种不同的变量作用域:

  • local 局部作用域
  • global 全局作用域
  • static 静态作用域
  • parameter 参数作用域
局部作用域与全局作用域

在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问。而要在一个函数中访问一个全局变量,需要使用 global 关键字。

在PHP函数内部声明的变量是局部变量,仅能在函数内部访问:

<?php
$x = 5; // 全局变量

// 声明函数
function test()
{
    $y = 10; // 局部变量
    echo "<p>测试函数内变量:</p>";
    echo "变量 x 为: $x";
    echo "<br>";
    echo "变量 y 为: $y";
}

// 调用函数
test();

echo "<p>测试函数外变量:</p>";
echo "变量 x 为: $x";
echo "<br>";
echo "变量 y 为: $y";


global 关键字用于函数内访问全局变量。在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字

<?php
$x = 5; // 全局变量

// 声明函数
function test()
{
    $y = 10; // 局部变量
    global $x; // 获取全局变量
    echo "<p>测试函数内变量:</p>";
    echo "变量 x 为: $x";
    echo "<br>";
    echo "变量 y 为: $y";
}

// 调用函数
test();


PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

<?php
$x = 5;
$y = 10;

// 声明函数
function test()
{
    echo $GLOBALS['x'] + $GLOBALS['y'];
    echo "<br>";  // 换行
    $GLOBALS['x'] += 1;  // 改变全局变量 $x
}

// 调用函数
test();

echo $x;

static作用域

当一个函数完成时,它的所有变量通常都会被删除。然而,有时候我们希望某个局部变量不要被删除。要做到这一点,就需要在第一次声明变量时使用 static 关键字

<?php

// 声明函数(不是static作用域)
function test()
{
    $x = 0;
    echo $x;
    $x++;
    echo "\\r\\n";  // 换行符
}
// 调用函数
test();
test();
test();


// 声明函数(是static作用域)
function test2()
{
    static $y = 0;
    echo $y;
    $y++;
    echo PHP_EOL;
}
// 调用函数
test2();
test2();
test2();

参数作用域

参数是通过调用代码将值传递给函数的局部变量。参数是在参数列表中声明的,作为函数声明的一部分。

<?php

// 声明函数
function test($x)
{
    echo "x: $x";
    echo "<br>";
}

// 调用函数
test(5);

echo "x: $x";

(5). echo与print

PHP里最基本的两个输出方式:echo、print。其中echo可以输出一个或多个字符串,print只允许输出一个字符串。echo的输出速度比print快,print有返回值1,而echo没有返回值。

echo是一个语言结构,使用时可以不加括号,也可以加括号,即echo或echo()。其字符串里可以包含html标签。

<?php

echo "<h2>hello world</h2>";
echo "hello PHP! <br>";
echo "1", "2", "3", "4", "5", "<br>";
echo 1024;


print 同样是一个语言结构,可以使用括号,也可以不用:print或print()。

<?php

$x = 10;

print "<h2>hello world</h2>";
print "hello PHP! <br>";
print 1024;
print "<br>";
print $x;
print "<br>";
print (print "hh");

(6). EOF(heredoc)

PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。

使用概述:

  • 必须后接分号,否则编译通不过。
  • EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
  • 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
  • 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
  • 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
  • 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接
<?php

echo <<<EOF
    <h1>我是标题</h1>
    <p>我是段落</p>
EOF;

$name = "php";
$a = <<<EOF
    "hello "$name
    world
EOF;
echo $a;

二:数据类型

php有7种基本数据类型:

  • String(字符串)
  • Integer(整型)
  • Float(浮点型)
  • Boolean(布尔型)
  • Array(数组)
  • Object(对象)
  • NULL(空值)

(0).php数据类型的判断

php数据类型的判断方法有print_r和var_dump。

print_r打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。 注意,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

(1).php简单的数据类型

<?php

// 字符串
echo "字符串测试:"."<br>";
$x = "Hello world!";
var_dump($x);
echo "<br>";
$x = 'Hello!';
var_dump($x);

// 整型
echo "<br>"."整型测试:"."<br>";
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);

// 浮点型
echo "<br>"."浮点型测试:"."<br>";
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);

// 布尔型
echo "<br>"."布尔型测试:"."<br>";
$x = true;
$y = false;
var_dump($x);
var_dump($y);

// 空值测试
echo "<br>"."空值测试:"."<br>";
$x = "Hello world!";
$x = null;
var_dump($x);

(2).php字符串

PHP并置运算符
在 PHP 中,只有一个字符串运算符。并置运算符 (.) 用于把两个字符串值连接起来。

<?php
$txt1 = "hello world!";
$txt2 = "php is the best";
echo $txt1 . ' ' . $txt2;


PHP strlen() 函数
strlen() 函数返回字符串的长度(字节数)

<?php
$x = "hello php";
$y = 123;
$z = "你好";
echo strlen($x) . "<br>";
echo strlen($y) . "<br>";
echo strlen($z) . "<br>";


PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。

<?php
$x = "hello php";
echo strpos($x, 'o') . '<br>';
echo strpos($x, 'l') . '<br>';
if(strpos($x, 'n'))
{
    echo strpos($x, 'n');
} else{
    echo 'FALSE';
}

(3).php数组

在 PHP 中,array() 函数用于创建数组:

$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";

在 PHP 中,有三种类型的数组:

数值数组 - 带有数字 ID 键的数组
关联数组 - 带有指定的键的数组,每个键关联一个值
多维数组 - 包含一个或多个数组的数组

数值数组
这里有两种创建数值数组的方法:

$cars=array("Volvo","BMW","Toyota");

或者:

$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota"; 

关联数组
关联数组即使用人工分配给数组的指定的键的数组。这里有两种创建关联数组的方法:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

或者:

$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43"; 

多维数组
一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组。依照这种方式,我们可以创建二维或者三维数组。

<?php
// 二维数组:
$cars = array
(
    array("Volvo",100,96),
    array("BMW",60,59),
    array("Toyota",110,100)
);
print("<pre>"); // 格式化输出数组
print_r($cars);
print("</pre>");

// 自动分配 ID 键的多维数组
$sites = array
(
    "runoob"=>array
    (
        "菜鸟教程",
        "http://www.runoob.com"
    ),
    "google"=>array
    (
        "Google 搜索",
        "http://www.google.com"
    ),
    "taobao"=>array
    (
        "淘宝",
        "http://www.taobao.com"
    )
);
print("<pre>"); // 格式化输出数组
print_r($sites);
print("</pre>");

获取数组长度
count() 函数用于返回数组的长度(元素的数量)

<?php
$cars = array("Volvo","BMW","Toyota");
echo count($cars);

遍历数值数组

<?php
$cars = array("Volvo","BMW","Toyota");
$arrlength = count($cars);
 
for($x = 0; $x < $arrlength; $x++)
{
    echo $cars[$x];
    echo "<br>";
}

遍历数关联数组

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 
foreach($age as $x=>$x_value)
{
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
}

(4).php对象

在”九:面向对象“里会详细说明

三:类型比较

虽然 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。

松散比较:使用两个等号 == 比较,只比较值,不比较类型。
严格比较:用三个等号 === 比较,除了比较值,也比较类型。
<?php
if(42 == "42") {
    echo '1、值相等';
}

echo PHP_EOL; // 换行符

if(42 === "42") {
    echo '2、类型相等';
} else {
    ech

以上是关于php基础汇总的主要内容,如果未能解决你的问题,请参考以下文章

PHP基础知识点汇总

PHP基础知识点汇总

php面试题汇总二(基础篇附答案)

php面试题汇总一(基础篇附答案)

超级有用的9个PHP代码片段

(基础篇)PHP获取时间时间戳的各种格式写法汇总