碎碎念
本教程(学习记录)主要是针对已经熟悉一门编程语言的基础下,进行的记录,;零基础看的话会遗漏很多关键知识点,仅供参考。
快速运行
页面中内联PHP代码
<?php
echo "想学习php吗?来慕课网吧";
?>
后面的?>
可以省略
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的字符串可以用单引号,双引号来包裹。如果符号有冲突,可以使用转义符"他说:\“哈哈哈!\”"
。注意,转译符号是放在要转义的自负前面。
<?php
$var = "Why doesn't \"this\" work?";
注意,当字符串与变量在一起时,双引号会解析变量(PHP允许我们在双引号串中直接包含字串变量),单引号会把变量当成字符串(因为单引号串中的内容总被认为是普通字符)。
<?php
$foo = 2;
echo "foo is $foo"; // 打印结果: foo is 2
echo 'foo is $foo'; // 打印结果: foo is $foo
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行)
echo 'foo is $foo\n'; // 打印结果: foo is $foo\n
同时,大括号的作用是在双引号字符串中标识一段变量,如下
<?php
$a = '12345';
echo "qwe$arty"; // 错误 变量会被认为是$arty
echo "qwe".$a."rty";
echo "qwe{$a}rty";
// 解析较为复杂的变量时也推荐使用大括号
echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素
此处参考:https://blog.csdn.net/h330531987/article/details/69495452
<?php
$love = "I love you!";
$string1 = "慕课网,$love";
$string2 = '慕课网,$love';
echo $string1;
echo "<br />";
echo $string2;
?>
//>>>
慕课网,I love you!
慕课网,$love
对于很长的字符串,keyishiyonghereDoc,结尾的GOD必须新起一行加分毫号,不能有其他任何。
<?php
$string1 = <<<GOD
我有一只小毛驴,我从来也不骑。
有一天我心血来潮,骑着去赶集。
我手里拿着小皮鞭,我心里正得意。
不知怎么哗啦啦啦啦,我摔了一身泥.
GOD;
echo $string1;
?>
特殊类型
资源
<?php
//首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
$file_handle = fopen("/data/webroot/resource/php/f.txt", "r");
if ($file_handle){
//接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
while (!feof($file_handle)) { //判断是否到最后一行
$line = fgets($file_handle); //读取一行文本
echo $line; //输出一行文本
echo "<br />"; //换行
}
}
fclose($file_handle);//关闭文件
?>
NULL
大小写不敏感,表示空。赋值为NULL,未赋值,或者被unset ($var)
(销毁变量)。
<?php
error_reporting(0); //禁止显示PHP警告提示
$var;
var_dump($var);
$var1 = null;
var_dump($var1);
$var2 = NULL;
var_dump( $var2);
$var3 = "节日快乐!";
unset($var3);
var_dump($var3);
?>
常量
- 常量可以理解为值不变的量(如圆周率);或者是常量值被定义后,在脚本的其他任何地方都不可以被改变。
自定义常量 - define()
定义一个常量需要通过define函数定义,语法如下
bool define(string $constant_name, mixed $value[, $case_sensitive = true])
// 返回布尔值,若存在则返回布尔类型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版本的操作系统名称。它可以告诉我们服务器所用的操作系统名称,我们可以根据该操作系统优化我们的代码。
取常量值
- 通过常量变量名来取
- 使用
constant()
函数:mixed constant(string constant_name)
,传入常量名称,如果成功则返回常量的值,失败则提示错误信息常量没有被定义。
PS. mixed表示函数返回值类型为多种不同的类型,string表示参数类型为字符串类型
<?php
$p="";
//定义圆周率的两种取值
define("PI1",3.14);
define("PI2",3.142);
//定义值的精度
$height = "中";
//根据精度返回常量名,将常量变成了一个可变的常量
if($height == "中"){
$p = "PI1";
}else if($height == "低"){
$p = "PI2";
}
$r=1;
$area = constant($p)*$r*$r;
echo $area;
?>
运算符
仅列出PHP特有的一些运算符
“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化。
$c = &$a;
// $c的取值是$a的内存
逻辑运算符
连字符
<?php
$a = "张先生";
$tip = $a . "欢迎您在慕课网学习PHP!";
$b = "东边日出西边雨";
$b .= ",道是无情却有情";
$c = "东边日出西边雨";
$c = $c.",道是无情却有情";
echo $tip."<br />";
echo $b."<br />";
echo $c."<br />";
?>
错误控制运算符
将@放置在一个PHP表达式之前,该表达式可能产生的任何错误信息都被忽略掉;
PS:如果激活了track_error(这个玩意在php.ini中设置)特性,表达式所产生的任何错误信息都被存放在变量$php_errormsg中,此变量在每次出错时都会被覆盖,所以如果想用它的话必须尽早检查。
取模运算符
<?php
$maxLine = 4; //每排人数
$no = 17;//学生编号
$line = ceil($no/$maxLine);
$row = $no%$maxLine?$no%$maxLine:$maxLine;
echo "编号<b>".$no."</b>的座位在第<b>".$line."</b>排第<b>".$row."</b>个位置";
?>
??与?
- $a ?? 0 等同于 isset($a) ? $a : 0。
- $a ?: 0 等同于 $a ? $a : 0。
- empty: 判断一个变量是否为空(null、false、00、0、’0’、』这类,都会返回true)。
- isset: 判断一个变量是否设置(值为false、00、0、’0’、』这类,也会返回true)。
数组
分为索引数组、关联数组,关联数组是指数组的键是字符串的数组。
$arr = array(); // 空数组
// 关联数组
$fruit = array(
'apple'=>"苹果",
'banana'=>"香蕉",
'pineapple'=>"菠萝"
);
$fruit['apple'];
// 三种数组赋值方式
$arr = array('0'=>'苹果','1'=>'香蕉','2'=>'西瓜');
array('苹果');
$arr[0]='苹果';
数组for循环出所有的value(注意PHP连接字符串用.
)
<?php
$fruit=array('苹果','香蕉','菠萝');
for($index=0; $index<3; $index++){
echo '<br>数组第'.$index.'值是:'.$fruit[$index];
}
?>
foreach循环
<?php
$fruit=array('苹果','香蕉','菠萝');
foreach($fruit as $key=>$value){
echo '<br>第'.$key.'值是:'.$value;
}
?>
foreach循环关联数组
<?php
$fruit=array('apple'=>"苹果",'banana'=>"香蕉",'pineapple'=>"菠萝");
foreach($fruit as $key=>$value){
echo '<br>键是:'.$key.',对应的值是:'.$value;
}
?>
对象
<?php
//定义一个类
class Car {
var $name = '汽车';
function getName() {
return $this->name;
}
}
//实例化一个car对象
$car = new Car();
$car->name = '奥迪A6'; //设置对象的属性值
echo $car->getName(); //调用对象的方法 输出对象的名字