竹笋

首页 » 问答 » 灌水 » PHP语言基础程序员培养之路第三十一
TUhjnbcbe - 2022/10/15 13:57:00

第一节helloworld

文件命名

  文件后缀名为php

  文件名中不可包含中文、空格、特殊符号

  建议使用有意义的英文单词命名

语言标记

标准风格

?php.......?

注意:纯php脚本文件要求:1.开始标签要在第一行顶头写;2.删除结束标签。

图一

php标签之外是html语言环境,在纯php代码环境下,这些html字符(包括看不见的空格或者回车,制表符号)也会一同输出,引发意外错误。因此,在编码规范中规定:库文件、class类文件等只要是纯php代码的文件,要删除结尾的?结束标签。

!DOCTYPEhtmlhtmlbody    buttonajax异步请求/button  /body/htmlscriptsrc=jquery-1.11.3.min.js/scriptscript  $(button).click(function(){    $.get(doAction.php,function(data){      alert(data?ok:no);    })  })/script?php  echofalse;//输出:?

结束标签后有空格,输出:

所以要删除php的结束标签

图二

注释符与结束符

//单行注释/*多行注释*/

结束符使用英文分号“;”

$hello=helloworld;

常用命令和系统函数

  echo

echo输出:只能输出字符串、数字、布尔(true:1false:空)类型的数据

?php$hello=helloworld;  echoh1{$hello}/h1;?

快速输出

h1?=$hello?/h1

相当于

?phpecho$hello?

  var_dump()

此函数显示一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构

注意:var_dump中的变量必须是存在的,如果变量存在但值是空,则返回false没有变量时,则返回NULL该函数有输出的功能,因此不必加其它的输出函数

代码

  require与include

1.  require

常用于引入重要文件,若引入失败会直接影响到当前整个脚本,引入失败报Error错误

2.  include

常用于引入普通文件,若引入失败不会对当前脚本有较大的影响,引入失败报Warning错误

3.  require_once

避免重复引入,其他规则同require

4.  include_once

避免重复引入,其他规则同include

  header

用于定义HTTP协议头信息。

php

第二节变量与常量

变量

  声明变量:$

  命名规则:字母数字下划线、首字母不能为数字、严格区分大小写、且不能使用关键字!推荐驼峰命名法

  变量销毁:unset(变量名),被销毁的变量在内存中被释放

  引用变量

变量引用:用不同的名字访问同一个变量内容

$man=zhangsan;$student=$man;//用符号引用var_dump($man===$student);//true

常量

使用define关键字定义常量,常量命名要全部大写,常量的数据类型不能是资源、对象

定义常量

define(SCHOOL,清华大学);

判断常量

var_dump(defined(SCHOOL));//true

变量与常量的差异

数据

第三节数据类型

八种数据类型

  四种标量类型

–  布尔型(boolean)

–  整型(integer)范围:2^32或2^64(超出自动转换为浮点型)

–  浮点型(float)范围:双精度

–  字符串(string)

  两种复合类型

–  数组型(array)

–  对象型(object)

  两种特殊类型

–  资源型(resource)

–  空型(null)

不同进制

$number1=0b10;  //0b开头二进制结果:2

$number2=;  //0开头八进制结果:83

$number3=0x;  //0X开头十六进制结果:

对象型

具有一定功能和特征的单个事物,对象是属性和方法的集合

资源型

变量可以是文件夹、一个文件、从数据库中得到的结果集等,操作这个变量,相当于操作这些资源。

NULL型

null也是数据,通常表示一种状态,变量没有任何值,就用null表示。以下情况会得到null:

  直接将一个变量赋值为null

  将一个变量销毁后再次使用该变量

  直接使用一个不存在的变量

第四节数据类型转换

自动类型转换

在特殊运算时,会有自动类型转换的情况

null  对象

未知变量(或被销毁变量)      

强制类型转换

  改变原变量类型

使用settype()函数可以将一个指定变量强制转换为另一种指定类型

  不改变原变量类型

格式:新变量=(指定变量类型)原变量;

强制类型转换:不改变原变量类型

定义一个存储变量

$old=1;$new;  //用于接收转换之后的变量

开始转换

$new=(Boolean)$old;  //true$new=(Integer)$old;  //1$new=(Float)$old;  //float1$new=(String)$old;  //1$new=(Array)$old;  //Array$new=(Object)$sum;  //Object

常用变量检测函数

常用数学运算函数

PHP

第五节字符串

三种定义方式

$num=10;

单引号

$title=hxsd.$num.beijing;

双引号支持解析变量,不能解析表达式,例如:{$hxsd+1}

$school=divid=boxh1{$hxsd}/h1/div;

定界符(可以任意取名)

$str2=markdivid=boxh1class=main{$hxsd}/h1/divmark;

注意:

定界符中可以使用单、双引号,可以解析变量

定界符中的字符串,会保留所有格式,包括各种空格(尽量顶格写,避免开始的空格)

结束标记一定要顶格写

开始、结束标记(上面代码中的‘mark’)后不能再有空格等字符(包括注释语句也不能有)

字符串支持折行,注意:折行位置会多一个空格

$txt=abcdefghijk;//显示结果:abcdefghijk

常用字符串操作函数

第六节数组

数组类型

  关联式数组:下标为有意义的字符串

  索引式数组:下标为默认从0开始的数值

定义数组

  直接赋值方式定义

$a[]=10;    $a[]=20;    $a[name]=张三;$a[sex]=男;

结果

/**0=int10*1=int20*name=string张三(length=9)*sex=string男(length=3)*/

  使用array()函数

$b=array(10,20,30);$b=array(name=张三,sex=男,age=28);

  快捷赋值

$c=[10,20,30];$c=[name=张三,sex=男,age=28];

  二维数组与多维数组

二维数组

$group=array(one=array(张三,李四,王五),  two=array(赵六,孙七),);

定义一个三维数组

$class=array(class01=array(    one=array(张三,李四,王五),    two=array(赵六,孙七),),  class02=array(    one=array(张三,李四,王五),    two=array(赵六,孙七),););

获取李四

echo$class[class02][one][1];  //李四

数组的遍历

for遍历索引数组

$arr=[11,22,33,44,55];for($i=0;$icount($arr);$i++){var_dump($arr[$i]);};

foreach

$f_arr=[name=zhangsan,age=18,sex=m];foreach($f_arras$key=$value){echo$key.:.$value.br;};

list(只用于索引数组)

list($a,$b,$c,$d,$e)=[张三,李四,王五,小明,小红];echo$a,$b,$c,$d,$e;

数组的输出

$b=3.1;$c=TRUE;var_dump($b,$c);/*输出:float(3.1)bool(true)*/

复制数组

$arr1=[,,];$arr2=$arr1;//$arr2是个新数组var_dump($arr2===$arr1);//false

用引用数组

$arr3=$arr1;var_dump($arr3===$arr1);//true

数组常用函数

数组转JSON

第七节运算符

$a=10;$b=20;$c=hxsd;

数字与数字相加:数学运算

echo$a+$b;//30

数字与字符串相加

echo$a+你好;//数字开头为echo你好+$a;//同上

echo$a+你好;//10以字母开头字符串,转换成0echo你好+$a;//10同上

数字与bool值

echo$a+true;//11true:1false:0

PHP-网站介绍「程序员培养之路第三十天」

MySQL-函数「程序员培养之路第二十九天」

MySQL-存储过程、触发器「程序员培养之路第二十八天」

1
查看完整版本: PHP语言基础程序员培养之路第三十一