php基础
一、首先来个初体验
<?php
echo '终于学习php了,很高兴';
?>
运行效果
php编程语言写在<?php ?>里面,在某些情况下?>可以不用写
二、 php变量
变量可以理解为是存储信息的“容器”
php变量的规则
变量必须以$开始,后面才跟着变量的名称
变量名必须以字母或者下划线字符开始,不能以数字开头(例如$1 是错误的)
变量名只能包含字母数字字符以及下划线
变量名不能有空格
变量名区分大小写($a 和 $A 是不同的两个变量)
php变量无需声明
php变量,使用前不用声明;php没有变量声明语句
变量声明,简单的可以理解为:向内存申请一块空间,用来存储数据,变量名就是内存地址编号
第一次要初始化,也可称之为赋值,第二次叫更新/修改,也可称之为重新赋值
举例说明
<?php
$site='php.cn';
?>
不好演示画了个图表示下
三、 数据与代码在程序中如何体现
<?php
//数据:变量表示,放在数据段
$site='php.cn';
//代码:函数表示,放在代码段
function get_site($webSite)
{
return $webSite.'欢迎您';
}
//调用函数,指令就是一条一条的进入到cpu中
echo get_site($site);
// 两个//是php中的单行注释
/*
* 这样的是php中的多行注释
*/
四、 为什么数据有类型
1.操作的要求:只有明确了数据类型,才能允许操作
例如:数组允许进行算术运算,字符串不能进行算术运算。打比方说就是一台设备的按钮只画了个符号,不告诉用户是按的还是转的,用户就不知道怎么操作的了
2.存储要求:只有声明了数据类型,才能正确的分配内存空间来保存
例如:数值、字符串、布尔值、它们占用的空间肯定是不一样的
数据类型分类:
五、 基本类型的特点与操作
基本类型:数值,字符串,布尔值(true,false),浮点型
字符串必须用定界符进行包装:单引号/双引号
单引号:纯字符中
双引号:除了纯字符中之外,还能解析变量和特殊字符
->数值范围
数值:计算机的字长相关,32位与64位不相同
字符串:与字符编码集相关,gbk/utf8/utfmb4
布尔值: true / false
->存储方式
栈:定长存储单元 ,(整数4-8字节,字符串的入口地址放进去)
堆:不定长的存储单元,(数组,对象,字符串本身)
->类型说明
一个变量名对应一个值:单值类型
例: $name=’li’; $gender=’male’;
一个变量名对应多个值:多值类型
例:多值类型/复合类型:数组、对象
六、 php输出操作
<?php
$name='xiao gang';
$age=29;
/*
* .是php中的拼接,跟js中+类似
* . 的拼接可以使用 , 省去了字符串的拼接和解析的过程,效果要比.高些
* echo可以输出一个或多个字符串
* echo 输出是没有返回值的
*
*/
echo '年龄:'.$age.'<br>';
echo $name.'的年龄:'.$age.'<br>';
echo $name,'的年龄:',$age,'<br>';
/*
* 取出变量$name里面的x 用一下方式
* 因为不是数组,推荐的方式是{},免得误会
*/
echo '姓名的一个字母'.$name[0].'<br>';
echo '姓名的一个字母'.$name{0}.'<br>';
/*
* print是有返回值的,成功会返回输出1
*/
echo print('年龄:'.$age.'<br>');
echo '<br>';
//第二个参数true不是输出,而是返回,类似与return
echo print_r($name,true);
echo '<hr>';
//复合类型 数组
$data=range(1,20,2);
//数组 转成了字符串
$result=print_r($data,true);
// gettype返回当前的数据类型
echo gettype($result);
// pre可以格式化输出
echo '<pre>'.$result.'</pre>';
echo '<hr>';
//可以生成变量的php源代码的字符串表示
echo var_export($name);
echo '<br>';
echo var_export($data,true);
echo '<br>';
//可以完成的输出类型和值
var_dump($data);
输出结果:
七、 单双引号及大段字符串的输出
<?php
$name='xiao gang';
$age=29;
//如果输出的是纯字符串,没有变量的话,建议使用单引号,效率要比双引号快
//单引号不会解析变量
echo '我是:$name <br>';
//双引号可以正常解析
echo "我是:$name <br>";
echo "我是:${name}哈哈 <br>";
echo "我是:{$name}哈哈 <br>";//建议使用这种方式
//双引号可以解析特殊字符
echo "This\t'is' a\t demo<br>";
//如果想要输出双引号,需要进行转义,方式如下
echo "This\t'is' a\t \"demo\"<br>";
//大段字符串的输出 heredoc:类似双引号定义的字符串
//第一种:简洁 第二种直观
echo <<< HELLO
<h3 style="color: red">"php中文网"{$name}</h3>
HELLO;
echo <<< "HELLO"
<h3 style="color: aquamarine">"php中文网"{$name}</h3>
HELLO;
echo '<br>';
//nowdoc:功能与单引号创建的字符串类似,不解析变量及特殊字符
echo <<< 'NOWDOC'
<h3 style="color: aqua">"php中文网"{$name}'单引号'</h3>
NOWDOC;
HELLO NOWDOC 名字可以随便设置,只要是合法的,注意的是《nowdoc》单引号是不能省略的
运行结果:
以上有自己的想法在里面,有错误之处,请老师指出下,不要误导了读者;
php我有些经验,重新在学一遍,感觉就是不一样,又能补上自己没有学习到的知识,会的知识在做些巩固,初学着可能觉得不明白,很正常的,我初学的时候,懵圈了相当久的一段时间,课程都要结束了才明白,可能就是差那点意思,理解明白了就会恍然大悟的感觉,学另一个编程语言就会很容易的接受了,思想都是相通的!