Blogger Information
Blog 29
fans 0
comment 0
visits 11148
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php 变量
尹辉
Original
264 people have browsed it

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
Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post