碎碎念

本教程(学习记录)主要是针对已经熟悉一门编程语言的基础下,进行的记录,;零基础看的话会遗漏很多关键知识点,仅供参考。

快速运行

页面中内联PHP代码

  1. <?php
  2. echo "想学习php吗?来慕课网吧";
  3. ?>

后面的?>可以省略

  • echo是PHP中的输出语句,可以把字符串输出,注意echo与输出字符串之间至少要有一个空格;
  • 连字符是一个点标志,<?php echo "hello" . " " . "World"?>
  • PHP编程中需要在每条语句的末尾加入分号;
  • 双斜杠(//)来表示注释

    定义变量

    变量名必须通过$符号标识 ,变量前不用声明类型,PHP会自己推断类型。var_dump() 函数用于输出变量的相关信息,包含类型与值,数组将递归展开值,通过缩进显示其结构 ```php <?php $b = 3.1; $c = true; var_dump($b, $c); ?>

> float(3.1) bool(true) ``` 变量名规则

  • 字母或下划线 “_”开头
  • 需要“$”进行标识
  • 变量名只能由字母、数字、以及“_”组成,还能包含汉字
  • 当变量名由多个单词组成,建议使用“_”进行分隔(比如 $my_apple,或$myApple
  • PHP中变量名是区分大小写的

memory_get_usage();,返回分配给PHP的内存使用,扩展

布尔

true和false不区分大小写。

用echo输出bool值时,true则输出1,false则什么都不输出,可以使用var_dump来查看它的真正数据类型。

整型和浮点型

常见的正数,无论是10、8、·6进制。浮点型就是有消数。

字符串

PHP的字符串可以用单引号,双引号来包裹。如果符号有冲突,可以使用转义符"他说:\“哈哈哈!\”"。注意,转译符号是放在要转义的自负前面。

  1. <?php
  2. $var = "Why doesn't \"this\" work?";

注意,当字符串与变量在一起时,双引号会解析变量(PHP允许我们在双引号串中直接包含字串变量),单引号会把变量当成字符串(因为单引号串中的内容总被认为是普通字符)

  1. <?php
  2. $foo = 2;
  3. echo "foo is $foo"; // 打印结果: foo is 2
  4. echo 'foo is $foo'; // 打印结果: foo is $foo
  5. echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行)
  6. echo 'foo is $foo\n'; // 打印结果: foo is $foo\n

同时,大括号的作用是在双引号字符串中标识一段变量,如下

  1. <?php
  2. $a = '12345';
  3. echo "qwe$arty"; // 错误 变量会被认为是$arty
  4. echo "qwe".$a."rty";
  5. echo "qwe{$a}rty";
  6. // 解析较为复杂的变量时也推荐使用大括号
  7. echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素

此处参考:https://blog.csdn.net/h330531987/article/details/69495452

  1. <?php
  2. $love = "I love you!";
  3. $string1 = "慕课网,$love";
  4. $string2 = '慕课网,$love';
  5. echo $string1;
  6. echo "<br />";
  7. echo $string2;
  8. ?>
  9. //>>>
  10. 慕课网,I love you!
  11. 慕课网,$love

对于很长的字符串,keyishiyonghereDoc,结尾的GOD必须新起一行加分毫号,不能有其他任何。

  1. <?php
  2. $string1 = <<<GOD
  3. 我有一只小毛驴,我从来也不骑。
  4. 有一天我心血来潮,骑着去赶集。
  5. 我手里拿着小皮鞭,我心里正得意。
  6. 不知怎么哗啦啦啦啦,我摔了一身泥.
  7. GOD;
  8. echo $string1;
  9. ?>

特殊类型

资源

  1. <?php
  2. //首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
  3. $file_handle = fopen("/data/webroot/resource/php/f.txt", "r");
  4. if ($file_handle){
  5. //接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
  6. while (!feof($file_handle)) { //判断是否到最后一行
  7. $line = fgets($file_handle); //读取一行文本
  8. echo $line; //输出一行文本
  9. echo "<br />"; //换行
  10. }
  11. }
  12. fclose($file_handle);//关闭文件
  13. ?>

NULL

大小写不敏感,表示空。赋值为NULL,未赋值,或者被unset ($var)(销毁变量)。

  1. <?php
  2. error_reporting(0); //禁止显示PHP警告提示
  3. $var;
  4. var_dump($var);
  5. $var1 = null;
  6. var_dump($var1);
  7. $var2 = NULL;
  8. var_dump( $var2);
  9. $var3 = "节日快乐!";
  10. unset($var3);
  11. var_dump($var3);
  12. ?>

常量

  • 常量可以理解为值不变的量(如圆周率);或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。

自定义常量 - define()

定义一个常量需要通过define函数定义,语法如下

  1. bool define(string $constant_name, mixed $value[, $case_sensitive = true])
  2. // 返回布尔值,若存在则返回布尔类型true,否则返回布尔类型false;
  • 第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,但是要注意哦,它可不带美元符号哦。
  • 第二个参数“value”为必选参数,它是常量的值。
  • 第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,一般不指定第三个参数的情况下,默认第三个参数的值为false。 “; echo PII; ?>

string表示参数类型为字符串类型,mixed表示参数类型可以接受为多种不同的类型,case_sensitive = true表示默认为布尔类型TRUE

系统常量

系统常量是PHP已经定义好的常量,我们可以直接拿来使用

(1)__FILE__ :php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置。

(2)__LINE__ :PHP程序文件行数。它可以告诉我们,当前代码在第几行。

(3)PHP_VERSION:当前解析器的版本号。它可以告诉我们当前PHP解析器的版本号,我们可以提前知道我们的PHP代码是否可被该PHP解析器解析。

(4)PHP_OS:执行当前PHP版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。

取常量值

  1. 通过常量变量名来取
  2. 使用constant()函数:mixed constant(string constant_name),传入常量名称,如果成功则返回常量的值,失败则提示错误信息常量没有被定义。

PS. mixed表示函数返回值类型为多种不同的类型,string表示参数类型为字符串类型

  1. <?php
  2. $p="";
  3. //定义圆周率的两种取值
  4. define("PI1",3.14);
  5. define("PI2",3.142);
  6. //定义值的精度
  7. $height = "中";
  8. //根据精度返回常量名,将常量变成了一个可变的常量
  9. if($height == "中"){
  10. $p = "PI1";
  11. }else if($height == "低"){
  12. $p = "PI2";
  13. }
  14. $r=1;
  15. $area = constant($p)*$r*$r;
  16. echo $area;
  17. ?>

运算符

仅列出PHP特有的一些运算符

“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。

  1. $c = &$a;
  2. // $c的取值是$a的内存

逻辑运算符

1.png

连字符

  1. <?php
  2. $a = "张先生";
  3. $tip = $a . "欢迎您在慕课网学习PHP!";
  4. $b = "东边日出西边雨";
  5. $b .= ",道是无情却有情";
  6. $c = "东边日出西边雨";
  7. $c = $c.",道是无情却有情";
  8. echo $tip."<br />";
  9. echo $b."<br />";
  10. echo $c."<br />";
  11. ?>

错误控制运算符

将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;

PS:如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。

取模运算符

  1. <?php
  2. $maxLine = 4; //每排人数
  3. $no = 17;//学生编号
  4. $line = ceil($no/$maxLine);
  5. $row = $no%$maxLine?$no%$maxLine:$maxLine;
  6. echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置";
  7. ?>

??与?

  • $a ?? 0 等同于 isset($a) ? $a : 0。
  • $a ?: 0 等同于 $a ? $a : 0。
  • empty: 判断一个变量是否为空(null、false、00、0、’0’、』这类,都会返回true)。
  • isset: 判断一个变量是否设置(值为false、00、0、’0’、』这类,也会返回true)。

    数组

分为索引数组、关联数组,关联数组是指数组的键是字符串的数组。

  1. $arr = array(); // 空数组
  2. // 关联数组
  3. $fruit = array(
  4. 'apple'=>"苹果",
  5. 'banana'=>"香蕉",
  6. 'pineapple'=>"菠萝"
  7. );
  8. $fruit['apple'];
  9. // 三种数组赋值方式
  10. $arr = array('0'=>'苹果','1'=>'香蕉','2'=>'西瓜');
  11. array('苹果');
  12. $arr[0]='苹果';

数组for循环出所有的value(注意PHP连接字符串用.

  1. <?php
  2. $fruit=array('苹果','香蕉','菠萝');
  3. for($index=0; $index<3; $index++){
  4. echo '<br>数组第'.$index.'值是:'.$fruit[$index];
  5. }
  6. ?>

foreach循环

  1. <?php
  2. $fruit=array('苹果','香蕉','菠萝');
  3. foreach($fruit as $key=>$value){
  4. echo '<br>第'.$key.'值是:'.$value;
  5. }
  6. ?>

foreach循环关联数组

  1. <?php
  2. $fruit=array('apple'=>"苹果",'banana'=>"香蕉",'pineapple'=>"菠萝");
  3. foreach($fruit as $key=>$value){
  4. echo '<br>键是:'.$key.',对应的值是:'.$value;
  5. }
  6. ?>

对象

  1. <?php
  2. //定义一个类
  3. class Car {
  4. var $name = '汽车';
  5. function getName() {
  6. return $this->name;
  7. }
  8. }
  9. //实例化一个car对象
  10. $car = new Car();
  11. $car->name = '奥迪A6'; //设置对象的属性值
  12. echo $car->getName(); //调用对象的方法 输出对象的名字