打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
PHP基础语法

文章目录

编程语言常见的语法

  • 变量 —— 用于临时存放数据的容器顺序结构 —— 先干什么再干什么
  • 分支结构 —— 如果怎样就怎样否则怎样循环结构 —— 不断的做某件相同的事
  • 函数 —— 提前设计好一件事怎么干,然后想什么时候干就什么时候干
  • 运算符 —— 数学运算和字符串拼接
  • 字面量 —— 在代码中用某些字符组成,能够表达一个具体的值 这些字符之间表示数据的方式叫做字面量

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

  1. 变量
  2. 双引号字符串和单引号字符串的差异
  3. 指令式的语法
  4. foreach
  5. 函数作用域问题
  6. 字符串拼接

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)做命名规则,不管是函数还是变量

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
PHP 变量类型的强制转换
PHP新手上路--eXdream blog
优化PHP代码的40条建议
PHP中对单引号和双引号的区别
PHP开发经验总结
PHP句法规则详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服