一、php入门

1、了解php

  • 1.HTML中的action属性指定跳转的URL;
    method属性规定数据发送的方法,其中有get(附加到URL的结尾)和post(以单独消息的形式发送);
  • 2.php脚本程序是在服务器端被解释执行的,与JavaScript有本质的不同,JavaScript是被浏览器执行的;
  • 3.使用服务器端脚本语言的主要原因是能够为站点用户提供动态内容;

2、变量

  • 1.变量是表示数据的符号,标识符是变量的名称;
$a = 5;//$a是表示5这个数据的符号 a就属于标识符
  • 2.php的数据类型
    php支持8种数据类型,其中包括4种标量类型,2种复合类型和2种特殊类型。
标量包括:
Boolen,Integer,Float,String
复合类型包括:
Array,Object
特殊类型包括:
NULL(空),resource(资源)
  • 3.可变变量:允许动态的改变一个变量的名称;
    工作原理:用一个变量的值作为另一个变量的名称:
    $varname = 'tireqty';
    于是,就可以用$$varname取代$tireqty
    $$varname = 5相当于$tireqty = 5
可以将for()循环和可变变量结合起来重复一系列的表单域,如:存在name1,name2,name3等的表单域
for($i=1; $i<3; $i++){
    $temp = "name$i";
    echo $$temp."<br/>";
}
动态的创建变量名称,依次访问每一个表单域
  • 4.声明和使用常量:define('USERNAME', 'Zhangsan');
  • 5.变量的作用域:指在一个脚本中某个变量在哪些地方可见或使用
    • 超级全局变量可以在脚本的任何地方使用和可见;
    • 常量一旦被声明将在全局可见,可在函数内外使用,但仅限于一个页面(包含include和require包含的脚本);
    • 函数内部使用的变量声明为全局变量时,其名称要与全局变量的名称一致,这样函数内部就可以使用函数外部的全局变量了,避免了函数内部变量与全局变量名称相同而覆盖全局变量的情况;
    • 在一个脚本中声明的全局变量在整个脚本中是可见的,但不是在函数内部,函数内部的变量名称如果与全局变量的名称一样,以函数内部的变量为准;
    • 函数内部创建并被声明为静态的变量无法在函数外部可见,但是可以在函数执行过程中保持该值;
    • 函数内部创建的变量只在函数内部使用,函数终止时,变量消失。
    • php内置超级全局变量列表如下:
$_GET,通过GET方法传递给脚本的变量数组;
$POST,通过POST方法传递给脚本的变量数组;
$COOKIE,cookie变量数组;
$_FOLES,与文件上载相关的变量数组;
$_ENV,环境变量数组
$_REQUEST,所有用户输入的变量数组,包含$POST,$GET,$COOKIE所包含的输入内容;
$_SESSION,会话变量数组

3、操作符

  • 1.前递增递减和后递增递减
①前递增递减
$a = 4;
echo ++$a;
//输出结果为5,因为执行过程为先将变量+1,然后将+1之后的结果赋值给原变量,然后输出。
②后递增递减
$a = 4;
echo $a++;
//输出结果为4,先执行输出操作,然后+1。
  • 2.引用操作符& 可以在关联赋值中使用。
通常,将一个变量的值赋给另一个变量时,是产生一个原变量的副本,
再将这个副本保存在内存的另一个地方。例如:
$a = 5;
$b = $a;
$a = 7;//这时$b 依旧为5
这时,若改变$a的值,$b的值将不会变化。因为$a与$b指向的内存地址不是一个。

但是,我们可以使用操作符&来避免$a$b指向不同的问题

$a = 5;
$b = &$a;
$a = 7;//这时$b也=7
引用就相当于变量的一个别名,$b和$a指向相同的地址。
可以通过重置来改变指向的地址
unset($a);
重置不会改变$b(7)的值,只是破坏$a和值7保存在内存中的链接
  • 3.错误抑制符 @
    如:$a = @(57/0);
    如果没有@操作符,这个代码将会产生一个除0警告,使用@操作符,这个警告将不会显示出来;
    如果通过@符号抑制了一些警告,一旦遇到一个警告,必须写一些错误处理代码;
    如果已经启用了php配置文件中的*** track_errors*** 特性,错误信息将会被保存在$php_errormsg中。
  • 4.执行操作符
    执行操作符是一对反向单引号``,与~符号位于键盘的相同位置;
    php将试着将反向单引号``之间的命令当做服务器端的命令来执行。表达式的值就是命令的执行结果。如:
在Linux操作系统中
$out = `ls -la`;
echo <pre> .$out. </pre>;
在window服务器上
$out = `dir c:`;
echo <pre> .$out. </pre>;
  • 5.类型操作符:instanceof适用于面向对象编程
    instanceof操作符允许检查一个对象是否是特定类的实例,如:
class sampleClass{...};
$myObject = new sampleClass();
if($myObject instanceof sampleClass){
    echo ' myObject is an instance of sampleClass ';
}

4、可变函数

  • 1.测试和设置变量类型gettype()和settype()
这两个函数原型为:
string gettype(mixed $var);
int settype(mixed $var, string type);
使用例子如下:
$a = 10;
echo gettype($a);//输出 Integer
settype($a, 'string');
echo gettype($a);//输出 String

php提供了特定类型的测试函数。返回值为true或false

*is_array();
*is_double()、is_float()、is_real() 具有相同功能
*is_long()、is_int()、is_integer()
*is_string();
*is_object();
*is_resource();
*is_null();
*is_scalar();  检查变量是否是标量(整数,浮点数,Boolen,字符串)
*is_numeric();  检查变量时候是任何类型的数字或纯数字字符串
*is_callable();  检查变量是否是有效的函数名称
  • 2.测试变量状态 isset() 和 empty()
isset()函数原型为:
boolen isset(mixed $var);
销毁变量用unset()函数:
void unset(mixed $var);
empty()函数原型为:
boolen empty(mixed $var);
*isset();检查变量是否设置
变量不存在返回false;
变量存在值为NULL,返回false;
其他返回true。
使用unset();释放变量之后,将不再是isset();
isset();只适用于变量,传递其他参数将解析错误。
检查常量是否设置可用defined();函数
*empty();检查变量是否为空
变量不存在返回true;
变量存在且值为NULL,0,'0',"",array(),false,等没有任何属性的对象,返回true;
  • 3.变量的重解释(转换变量数据类型)
int intval(mixed $var [, int $base = 10]);
float floatval(mixed $var);
string strval(mixed $var);
intval()函数允许在要转换的变量为字符串时指定转换的进制基础(如16进制的字符串转化为整数)

5、循环结构,流程控制

  • 1.可替换的控制结构语法
    endif,endswitch,endwhile,endfor,endforeach do...while循环没有可替换语法
if($a == 0){
   echo '为空!';
   exit;
}
相当于
if($a == 0) :
   echo '为空!';
   exit;
endif;
  • 2.使用declare
declare(directive){
    //block
}

这种结构用来设置代码块的执行指令,即关于后续代码如何运行的规则。
目前只实现了两个指令,ticks,encoding
ticks可以通过插入指令ticks = n来设置。它允许在代码块内部每隔n行代码运行特定的函数,用于测试和调试。通常条件表达式和参数表达式不可计时。[将在后面详细解释]
encoding可以指定每段脚本的编码方式
declare(encoding='ISO-8859-1');

    原文作者:ManZb
    原文地址: https://www.jianshu.com/p/eba8ca7716d6
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞