博客列表 >php 变量

php 变量

尹辉
尹辉原创
2023年04月11日 18:04:29261浏览

php 变量

php 有 8 种变量类型:

  • 4 种标量类型:字符串、布尔、整型、浮点型
  • 2 种复合类型:数组、对象
  • 2 种特殊类型:资源(resource)、空(null)

php 变量名以 $ 开头,声明的时候需要同时赋值:$userName = ‘Peter’。

变量名大小写敏感。(函数名大小写不敏感)

php 变量是弱类型,其类型由赋给它的值决定,且变量赋值后可以再次赋值不同类型的值,以改变变量的类型。

  1. $userName = 'Peter';
  2. var_dump($userName); // string(5) "Peter"
  3. $userName = 58;
  4. var_dump($userName); // int(58)

可以使用 unset() 来释放变量

标量类型

1)字符串 string

  1. $userName = 'Peter';
  2. var_dump($userName); // string(5) "Peter"

2)布尔 bool

  1. $boo = true;
  2. var_dump($boo); // bool(true)

3)整型 int

  1. $int = 58;
  2. var_dump($int); // int(58)

4)浮点型 float

  1. $price = 99.99;
  2. var_dump($price); // float(99.99)

复合类型

5)数组 array

声明

根据键名,分为索引数组和关联数组。按数组维度,分为一维数组和多维数组

声明方式:$arr = [‘key’=>’value’,…] 或者 $arr = array(‘key’=>’value’,…)

  1. 索引数组,键名为默认的数字(0,1,2…)
  1. $arr = ['php','java','python'];
  2. // 索引数组声明时 key 可以省略
  3. // 等同于:$arr = [0=>'php',1=>'java',2=>'python'];
  4. var_dump($arr);
  5. // array(3) { [0]=> string(3) "php" [1]=> string(4) "java" [2]=> string(6) "python" }
  1. 关联数组:键名为自定义的字符串
  1. $arr = array('id'=>1,'name'=>'admin','email'=>'admin@qq.com');
  2. print_r($arr);
  3. // 输出:
  4. // Array
  5. // (
  6. // [id] => 1
  7. // [name] => admin
  8. // [email] => admin@qq.com
  9. // )
  1. 一维数组:上述两例都是一维数组,每个键对应的值都是标量类型
  2. 多维数组:一个或多个键对应的值也是数组
  1. // 二维数组
  2. $arr = [
  3. 'id'=>1,
  4. 'name'=>'admin',
  5. 'info'=>['gender'=>'male','age'=>28,'email'=>'admin@qq.com']
  6. ];
  7. print_r($arr);
  8. // 输出:
  9. // Array
  10. // (
  11. // [id] => 1
  12. // [name] => admin
  13. // [info] => Array
  14. // (
  15. // [gender] => male
  16. // [age] => 28
  17. // [email] => admin@qq.com
  18. // )
  19. // )
遍历

1)for 循环

  1. $navs = ['首页', '视频教程', '学习路径', 'PHP培训新', '资源下载', '技术文章'];
  2. $nav = '';
  3. for ($i = 0; $i < count($navs); $i++){
  4. $nav .= "<a href='' style='padding:0 15px'>$navs[$i]</a>";
  5. }
  6. echo $nav;
  7. // 输出:
  8. // <a href='' style='padding:0 15px'>首页</a>
  9. // <a href='' style='padding:0 15px'>视频教程</a>
  10. // <a href='' style='padding:0 15px'>学习路径</a>
  11. // <a href='' style='padding:0 15px'>PHP培训新</a>
  12. // <a href='' style='padding:0 15px'>资源下载</a>
  13. // <a href='' style='padding:0 15px'>技术文章</a>

2)foreach

  1. $navs = [
  2. ['id' => 1, 'name' => '视频教程', 'url' => 'https://www.php.cn/course.html'],
  3. ['id' => 2, 'name' => '学习路径', 'url' => 'https://www.php.cn/map.html'],
  4. ['id' => 3, 'name' => 'PHP培训新', 'url' => 'https://www.php.cn/k.html'],
  5. ['id' => 4, 'name' => '资源下载', 'url' => 'https://www.php.cn/xiazai/']
  6. ];
  7. $nav = '';
  8. foreach ($navs as $k => $v) {
  9. $nav .= "<a href='{$v['url']}' style='padding:0 15px'>{$v['name']}</a>";
  10. }
  11. echo $nav;
  12. // 输出:
  13. // <a href="https://www.php.cn/course.html" style="padding:0 15px">视频教程</a>
  14. // <a href="https://www.php.cn/map.html" style="padding:0 15px">学习路径</a>
  15. // <a href="https://www.php.cn/k.html" style="padding:0 15px">PHP培训新</a>
  16. // <a href="https://www.php.cn/xiazai/" style="padding:0 15px">资源下载</a>
  17. // 简化
  18. // extract() — 从关联数组中提取一个成员,把成员的键当作变量的名称,成员的值当作变量的值
  19. // 不能是索引数组,因为 php 变量名不能以数字开始
  20. // 注意:不要对不可信的数据使用 extract(),如用户输入数据($_GET、$_POST)
  21. foreach ($navs as $k => $v) {
  22. extract($v);
  23. $nav .= "<a href='{$url}' style='padding:0 15px'>{$name}</a>";
  24. }
  25. echo $nav;
  26. // 输出同上

3)list()

list() ,语言结构,将数组的值批量赋值给一组变量。

  1. $arr = ['php', 'java', 'python'];
  2. list($php, $java, $py) = $arr;
  3. echo "{$php},{$java},{$py}是编程界比较受欢迎的后端语言";
  4. // php,java,python是编程界比较受欢迎的后端语言

6)对象 object

对象是类实例化的结果,类是具体相同属性和行为的一组对象的集合,用来表示一个应用中进行操作的实体项目,例如:NBA 球员

  1. // 定义类
  2. class NbaPlayer
  3. {
  4. private $name;
  5. public $team;
  6. public function getName()
  7. {
  8. return $this->name;
  9. }
  10. public function setName($name)
  11. {
  12. $this->name = $name;
  13. }
  14. }
  15. // 类只是一个模板,不能对其本身进行实际操作
  16. // 需要基于这个模板创建(实例化)对象,使用 new 关键词
  17. $james = new NbaPlayer;
  18. // 然后就可以对创建的对象进行操作
  19. $james -> setName('James');
  20. $james -> team = 'Lakers';
  21. echo $james -> getName(); // James
  22. echo $james -> team; // Lakers

特殊类型

7)资源类型 resource

保存了外部资源的一个引用,例如:fopen() 打开的文件资源,new PDO 创建的数据库连接,curl_init() 获取的 cURL 句柄等。

  1. // 打开:fopen(fileneme, mode)
  2. // 参数 r :只读方式打开,将文件指针指向文件头。成功时返回文件指针资源
  3. $handle = fopen('data.txt', 'r');
  4. var_dump($handle); // resource(5) of type (stream)
  5. // 读取:fread($handle, length),length:要读取的字节长度
  6. // UTF-8 编码中,一个中文汉字占 3 个字节
  7. $con = fread($handle, 11); // 注意:读取后指针位置会移动到 12,继续读取时从 12 开始
  8. echo $con; // 我的qq密
  9. // 读取全部:fread($handle, filesize(filename))
  10. // 前面不能有 fread
  11. $con = fread($handle, filesize('data.txt'));
  12. echo $con; // 我的qq密码是zhoujielun521125

8)空 null

  1. // ! null 不是指 0 false ''
  2. // 1,访问未定义的变量
  3. @var_dump($password); // $password 未定义
  4. // 输出:NULL
  5. // @ 抑制错误
  6. // 2,显式申明
  7. $pdo = null;
  8. var_dump($pdo); // NULL
  9. // 3,访问被释放后的变量(等同于未定义)
  10. $uname = 'Peter';
  11. unset($uname);
  12. @var_dump($uname); // NULL
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议