PHP基础语法

简介: PHP基础语法

编程语言常见的语法


  • 变量 —— 用于临时存放数据的容器顺序结构 —— 先干什么再干什么


  • 分支结构 —— 如果怎样就怎样否则怎样循环结构 —— 不断的做某件相同的事


  • 函数 —— 提前设计好一件事怎么干,然后想什么时候干就什么时候干


  • 运算符 —— 数学运算和字符串拼接


  • 字面量 —— 在代码中用某些字符组成,能够表达一个具体的值 这些字符之间表示数据的方式叫做字面量


PHP 也是另外种编程语言,作为另外一种编程语言,PHP 也具备着绝大多数语言都有的特点,例如变量、条件分支、循环、函数等等,不同的是每个语言都会有自己的语法规定。这里不用太过担心,这些语法规定与之前学习的编程语言大同小异,对我们来说不会有太大的压力。


  1. 变量


  1. 双引号字符串和单引号字符串的差异


  1. 指令式的语法


  1. foreach


  1. 函数作用域问题


  1. 字符串拼接


1. 变量


变量是编程语言中临时存放数据的容器。


PHP 中申明一个变量是用一个美元符号后面跟变量名来表示。变量名同样是区分大小写的。PHP 中变量无需声明类型,变量的类型根据值的类型来推断。


<?php
$foo; // 申明一个变量,变量名为 `foo`,未对其进行赋值
$bar = 'baz'; // 申明一个变量,将一个值为 `baz` 的字符串赋值给它
echo $foo; // 输出一个变量名为 `foo` 的变量
fn($bar); // 将一个变量名为 `foo` 的变量作为 `fn` 的实参传递


1.1. 数据类型


常见的 PHP 数据类型与 JavaScript 基本一致:


string(字符串)


integer(整型)—— 只能存整数


float(浮点型)—— 可以存带小数位的数字


boolean(布尔型)


array(数组)


object(对象)


NULL(空)


Resource(资源类型)


Callback / Callable(回调或者叫可调用类型)


字符串


PHP 有多种创建字符串的方式:单引号、双引号等。


单引号字符串


不支持特殊的转义符号,例如 \n


如果要表示一个单引号字符内容,可以通过 ’ 表达如果要表示一个反斜线字符内容,可以通过 \ 表达


双引号字符串


支持转义符号


支持变量解析


<?php
// ====== 单引号 ======
echo 'hello\nworld';    // => `hello\nworld`
echo 'I\'m a better man';
// => `I'm a better man`
echo 'OS path: C:\\Windows'; // => `OS path: C:\Windows`
// ====== 双引号 ======
echo "hello\nworld";    // => `hello
// world`
$name = 'zce';
echo "hello $name";     // => `hello zce`


字符串函数


<?php
// PHP 所有能力都是函数,内置1000多个函数
$str = 'hello';
// 获取字符串长度
echo strlen($str);
echo '<br>';
// 获取中文字符串(宽字符)的长度
// strlen 只能获取拉丁文的长度
// 内置成员函数直接使用
echo strlen('你好');
echo '<br>';
// PHP 中专门为 宽字符集 添加了一套 API
// 这一套 API 不在内置的 1000+ 里面,而是在一个模块(php_mbstring.dll)中
// 模块成员必须通过配置文件载入模块过后再使用
// 所有的API 都是 mb_xxxx
echo mb_strlen('你好');
// 配置 PHP 扩展的步骤
// 1. 在 PHP 的安装目录去创建一个 php.in
// 2. extension_dir
// 3. ;extension=php_mbstring.dll
// 4. 默认Apache加载的php.ini 是去 Windows目录找的
// 5. 可以通过 Apache 的配置文件修改默认加载路径 PHPIniDir


http://php.net/manual/zh/ref.strings.php


推荐w3c school:http://www.w3school.com.cn/php/php_string.asp


数组


PHP 中数组可以分为两类:


  1. 索引数组


与 JavaScript 中的数组基本一致


<?php
// 定义一个索引数组
$arr = array(1, 2, 3, 4, 5); 
var_dump($arr);
// PHP 5.4 以后定义的方式可以用 `[]`
$arr2 = [1, 2, 3, 4, 5]; 
var_dump($arr2);


  1. 关联数组


有点类似于 JavaScript 中的对象


<?php
// 注意:键只能是`integer`或者`string`
$arr = array('key1' => 'value1', 'key2' => 'value2'); 
var_dump($arr);
// PHP 5.4 以后定义的方式可以用 `[]`
$arr2 = ['key1' => 'value1', 'key2' => 'value2']; 
var_dump($arr2);


isset


// isset 也可判断数组中是否有指定的键
// 这种类似于 JavaScript 的方式虽然可以达到效果,但是会有警告
if ($dict['foo']) {
  echo $dict['foo'];
} else {
  echo '没有';
}
// isset 会吞掉 Undefined index 的警告
if (isset($dict['foo'])) {
  echo $dict['foo'];
} else {
  echo '没有';
}
// isset($dict['foo'])
// $dict['foo'] =>
// isset()
// empty($dict['foo']) 相当于 !isset($dict['foo']) || $dict['foo'] == false
if (empty($dict['foo'])) {
  echo '没有';
} else {
  echo $dict['foo'];
}
// empty 的实现
// function empty ($input) {
//   return !isset($input) || $input == false
// }


1.2. 数据类型转换


函数太多可以参考php手册


参考:http://php.net/manual/zh/language.types.type-juggling.php


<?php
$str = '132';
// 将一个内容为数字的字符串强制转换为一个整形的数字
$num = (int)$str;
// 将一个数字强制转换为布尔值
$flag = (bool)$num;


2. 运算符


数学运算符,逻辑运算符与 JavaScript 基本一致,无额外特殊情况。


字符串连接(拼接)采用的是比较特殊的 .


<?php
$name = 'zce';
// 拼接 `hey ` 和 `zce`
$message = 'hey ' . $name;
// 相当于 +=
$foo .= $message


3. 语句


分号分割


if、switch、while、for、 foreach、function…


4. 流程控制


顺序结构


分支结构


if … else


switch … case


循环结构


for


while


foreach — 专门用来遍历数组


<?php
$arr = array('name' => 'zhangsan', 'age' => '18');
foreach ($arr as $key => $value) {
echo $key . ' ' . $value;
}


指令式的 if、for、foreach、while 单独掌握


<?php
// 指令式就是将开始 { 换成 : 结束 } 换成 endif;
if ($i > 0) :
echo 'ok' endif;
// for foreach while 也是一样
for ($i = 0; $i < 10; $i++) :
echo $i; endfor;


5. 函数


定义与使用函数的方式与 JavaScript 相同:


<?php
// 函数名不区分大小写
function foo ($name, $title) {
echo "$name ($title)";
}
// 调用
foo('zce', 'UFO');
Foo('zgd', 'SBO'); // 大小写不区分


注意:使用方式有点差异(函数名不区分大小写),但是不要这么搞!!!


建议在 PHP 中采用下划线式(snake_case)做命名规则,不管是函数还是变量

相关文章
|
8天前
|
开发框架 .NET PHP
【PHP入门】1.1-PHP初步语法
【PHP入门】1.1-PHP初步语法
|
14天前
|
存储 PHP 容器
【PHP 开发专栏】PHP 基础语法与变量详解
【4月更文挑战第30天】本文概述了PHP的基础,包括脚本结构(&lt;?php至?&gt;标签)、注释(单行和多行)、数据类型(整型、浮点型、字符串型、布尔型、数组、对象)、运算符(算术、比较、逻辑)和流程控制(条件、循环语句)。还讨论了PHP变量的定义、作用域、类型转换及引用传递。了解这些基础知识对PHP编程至关重要,实践中不断学习和探索能提升Web开发技能。
|
2月前
|
SQL 关系型数据库 PHP
PHP基础语法
PHP基础语法
14 0
|
7月前
|
PHP
PHP基础语法(下)
本篇博客将会带你继续探索PHP语言的基础语法。本篇内容主要聚焦于PHP的流程控制语句和文件包含语句,掌握这些重要的语法结构将使您能够更好地控制程序流程,并且在开发过程中能够高效地组织和管理代码。
73 2
|
7月前
|
存储 PHP 容器
PHP基础语法(上)
PHP在当今世界仍然是一门流行和重要的服务器端脚本语言。它具有广泛的应用领域、强大的生态系统和不断发展的特点,为Web开发提供了可靠和灵活的解决方案。
64 8
|
8月前
|
XML 前端开发 JavaScript
PHP 语法入门
PHP 语法入门
20 0
|
9月前
|
PHP
php基础语法
php基础语法
37 2
|
10月前
|
关系型数据库 MySQL PHP
lockdatav-API在开发过程中php和mysql语法的优化方案
lockdatav-API在开发过程中php和mysql语法的优化方案
53 0
|
10月前
|
Shell PHP
shell检查php项目是否存在语法错误
当检查一个PHP项目中是否存在语法错误时,我们可以使用Shell脚本来自动化这个过程。在本文中,我们将介绍两种方法来实现这个目标。
157 0
|
PHP
php新语法
判断一个变量是a否存在,存在则赋值变量a,不存在赋值变量b;注意是判断一个变量是否存在,而不是判断一个变量是否为空
85 0