PHP

PHP語言基礎

字號+ 編輯: Snake 修訂: 人在硅谷 來源: 2023-09-07 我要說兩句(0)

第一节 hello world

文件命名

文件后缀名为 php

文件名中不可包含中文、空格、特殊符号

建议使用有意义的英文单词命名

语言标记

标准风格

<?php.......?>

注意:

纯php脚本文件要求:

  1. 开始标签要在第一行顶头写;

  2. 删除结束标签。

1.jpg

php标签之外是html语言环境,在纯php代码环境下,这些html字符(包括看不见的空格或者回车,制表符号)也会一同输出,引发意外错误。因此,在编码规范中规定:库文件、class类文件等只要是纯php代码的文件,要删除结尾的 ?> 结束标签。

<!DOCTYPE html>
<html>
    <body> 
        <button>ajax异步请求</button> 
    </body>
</html>

<script src="jquery-1.11.3.min.js"></script>

<script> 
    $("button").click(function(){ 
    $.get("doAction.php",function(data){ alert(data? "ok":"no"); }) })
</script>

<?php 
    echo false; //输出:""
?>

结束标签后有空格,输出:" "

所以要删除php的结束标签

2.jpg

注释符与结束符

// 单行注释
/*
  多行注释
*/

结束符使用英文分号 “;”

$hello="hello world";

常用命令和系统函数

echo

echo输出 : 只能输出字符串、数字、布尔(true:1 false:空)类型的数据

<?php
    $hello="hello world"; 
    echo "<h1>{$hello}</h1>";
?>

还有一种短标签的写法,有着比较悠久的历史,但出于某些神秘的安全原因,不推荐使用。以下写法在php.ini配置文件里如果打开了short_tag,是可以简写的。

<h1>
<?= $hello ?>
</h1>

相当于

<?php 
echo $hello 
?>

var_dump()

此函数显示一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构

注意: var_dump中的变量必须是存在的,如果变量存在但值是空,则返回false 没有变量时,则返回NULL 该函数有输出的功能,因此不必加其它的输出函数

5.jpg

require与include

1. require

常用于引入重要文件,若引入失败会直接影响到当前整个脚本,引入失败报 Error错误

2. include

常用于引入普通文件,若引入失败不会对当前脚本有较大的影响,引入失败报 Warning错误

3. require_once

避免重复引入,其他规则同require

4. include_once

避免重复引入,其他规则同include

header

用于定义 HTTP协议头信息。

php

第二节 变量与常量

变量

声明变量:$

命名规则:字母数字下划线、首字母不能为数字、严格区分大小写、且不能使用关键字!推荐驼峰命名法

变量销毁:unset(变量名),被销毁的变量在内存中被释放

引用变量

变量引用:用不同的名字访问同一个变量内容

$man="zhangsan";
$student=&$man; //用&符号引用
var_dump($man===$student);//true

常量

使用define关键字定义常量,常量命名要全部大写,常量的数据类型不能是 资源、对象

定义常量

define("SCHOOL","清华大学");

判断常量

var_dump( defined("SCHOOL") ); // true

变量与常量的差异

差异变量常量
定义$声明define()函数定义
命名大小写敏感必须大写(行业规范)
赋值可以重新赋值不能再赋值
数据类型8种数据类型只能是标量
销毁unset() 销毁不能销毁
判断方法isset() 判断是否定义

defined() 判断是否定义

作用于局部作用域全局作用域

第三节 数据类型

八种数据类型

四种标量类型

– 布尔型(boolean)

– 整 型(integer)范围:2^32或2^64(超出自动转换为浮点型)

– 浮点型(float)范围:双精度

– 字符串(string)

两种复合类型

– 数组型(array)

– 对象型(object)

两种特殊类型

– 资源型(resource)

– 空 型(null)

不同进制

$number1 = 0b10; // 0b开头 二进制 结果:2

$number2 = 0123; // 0开头 八进制 结果:83

$number3 = 0x123; // 0X开头 十六进制 结果:291

对象型

具有一定功能和特征的单个事物,对象是属性和方法的集合

资源型

变量可以是文件夹、一个文件、从数据库中得到的结果集等,操作这个变量,相当于操作这些资源。

NULL型

null也是数据,通常表示一种状态,变量没有任何值,就用null表示。以下情况会得到null:

直接将一个变量赋值为null

将一个变量销毁后再次使用该变量

直接使用一个不存在的变量

第四节 数据类型转换

自动类型转换

在特殊运算时,会有自动类型转换的情况

7.jpg

null 对象

未知变量(或被销毁变量)

强制类型转换

改变原变量类型

使用 settype() 函数可以将一个指定变量强制转换为另一种指定类型

不改变原变量类型

格式:新变量 = (指定变量类型) 原变量;

强制类型转换:不改变原变量类型

定义一个存储变量

$old = 1;
$new; // 用于接收转换之后的变量

开始转换

$new = (Boolean) $old; // true
$new = (Integer) $old; // 1
$new = (Float) $old; //float 1
$new = (String) $old; // "1"
$new = (Array) $old; // Array
$new = (Object) $sum; // Object

常用变量检测函数

8.jpg

常用数学运算函数

9.jpg

第五节 字符串

三种定义方式

11.jpg

$num = 10;

单引号

$title = 'hxsd'.$num.'beijing';

双引号 支持解析变量,不能解析表达式,例如:{$hxsd+1}

$school ="<div id='box'><h1>{$hxsd}</h1></div>";

定界符(可以任意取名)

$str2 = <<<mark<div id='box'><h1 class="main">{$hxsd}</h1></div>mark;

注意:

定界符中可以使用单、双引号,可以解析变量

定界符中的字符串,会保留所有格式,包括各种空格(尽量顶格写,避免开始的空格)

结束标记一定要顶格写

开始、结束标记(上面代码中的‘mark’)后不能再有空格等字符(包括注释语句也不能有)

字符串支持折行,注意:折行位置会多一个空格

$txt="abcdefghijk"; //显示结果:abcd efghijk

常用字符串操作函数

13.jpg

第六节 数组

数组类型

关联式数组:下标为有意义的字符串

索引式数组:下标为默认从0开始的数值

定义数组

直接赋值方式定义

$a[] = 10;
$a[] = 20;
$a['name'] = '张三';
$a['sex'] = '男';

结果

/**
 * 0 => int 10
 * 1 => int 20
 * 'name' => string '张三' (length=9)
 * 'sex' => string '男' (length=3)
 */

使用array()函数

$b = array(10,20,30);
$b = array('name'=>'张三', 'sex'=>'男', 'age'=>28);

快捷赋值

$c = [10,20,30];$c = ['name'=>'张三','sex'=>'男','age'=>28];

二维数组与多维数组

二维数组

$group = array('one'=>array('张三','李四','王五'), 'two'=>array('赵六','孙七'),);

定义一个三维数组

$class = array('class01'=>array( 'one'=>array('张三','李四','王五'), 'two'=>array('赵六','孙七'), ), 'class02'=>array( 'one'=>array('张三','李四','王五'), 'two'=>array('赵六','孙七'), ););

获取李四

echo $class['class02']['one'][1]; //李四

数组的遍历

for遍历索引数组

$arr=[11,22,33,44,55];
for($i=0; $i<count($arr); $i++) {
    var_dump($arr[$i]);
};

foreach

$f_arr=["name"=>"zhangsan","age"=>18,"sex"=>"m"];
foreach ($f_arr as $key=>$value) {
    echo $key.":".$value."<br>";
};

list(只用于索引数组)

list($a,$b,$c,$d,$e) = ["张三","李四","王五","小明","小红"];
echo $a, $b, $c, $d, $e;

数组的输出

$b = 3.1;
$c = true;
var_dump($b,$c);
/* 输出: float(3.1) bool(true) */

复制数组

$arr1=[111,222,333];$arr2=$arr1;
// $arr2是个新数组
var_dump($arr2===$arr1); // false

用&引用数组

$arr3 = &$arr1;
var_dump($arr3 === $arr1); // true

数组常用函数

14.jpg

数组转JSON

15.jpg

第七节 运算符

16.jpg

$a=10;
$b=20;
$c="hxsd";

数字与数字相加:数学运算

echo $a+$b; // 30

数字与字符串相加

echo $a+'2018你好'; // 2028 数字开头为2018
echo "2018你好"+$a; // 2028 同上
echo $a+'你好2018'; // 10 以字母开头字符串,转换成0
echo "你好2018"+$a; // 10 同上

数字与bool值

echo $a+true; // 11 true:1 false:0
閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: PHP+JS聊天群

相關課文
  • mac開發接入微信公衆號接口返回報錯 cURL error 56: SSLRead() return error -9806

  • pecl安裝程序時報錯Array and string offset access syntax with curly braces is no longer supported

  • PHP的換行符是什麽

  • 由於商家傳入的H5交易參數有誤,該筆交易暫時無法完成,請聯系商家解決

我要說說
網上賓友點評