燕十八PHP基础

这篇博客详细介绍了PHP的基础知识,包括变量、常量、运算符、控制结构、函数、字符串、数组、递归、位运算等内容,讲解了各种操作和概念,如变量检测、类型判断与转换、函数传参方式、字符串运算、数组操作、动态变量名定义以及常量的定义与输出。还探讨了函数的作用域、递归的概念和静态变量,以及文件上传的相关配置和错误处理。
摘要由CSDN通过智能技术生成

变量

变量检测
  1. bool isset ( mixed $var [, mixed $… ] )— 检测变量是否设置
    注意:一次可以检测多个变量,有一个变量未设置,则返回false; 如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE。
变量类型判断
  1. string gettype ( mixed $var ) — 获取变量的类型
    返回值:
    “boolean”
    “integer”
    “double”(由于历史原因,如果是 float 则返回“double”,而不是“float”)
    “string”
    “array”
    “object”
    “resource”
    判断是否是指定类型的变量:is_array,is_bool,is_float(is_double),is_int(is_integer),is_null,is_string,is_object,is_resource
变量类型转换

最常见的是字符串与数字的转换,或是数字/字符串->布尔值的转换。

$a='12avaf1422';
$b=1;
echo $a+$b;//13

数据类型转换

$num1=3.14;
$num2=(int)$num1;
var_dump($num1);
echo "<br/>";
var_dump($num2);//int(3)
  1. empty() — 检查一个变量是否为空 当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.
    以下的东西被认为是空的:
    “” (空字符串)
    0 (作为整数的0)
    0.0 (作为浮点数的0)
    “0” (作为字符串的0)
    NULL(null值)
    FALSE(布尔值false)
    array() (一个空数组)
    $var; (一个声明了,但是没有值的变量)
传值赋值与引用赋值
$num1=1;
$num2=2;
echo $num2;//2
$num2=&$num1;
echo $num2;//1

引用赋值结合变量销毁unset():

$num1=0;
$num2=&$num1;
unset($num1);
var_dump($num2,$num1);//int(0) NULL

注意:$num1销毁变量后,$num2值依然存在

动态变量名
$mk='孟珂';
$$mk='s';
echo $mk,'love',$$mk;

常量

定义

  • 该值在脚本中不能改变,不能销毁,不能重新声明
  • 常量名不需要加 $ 修饰符
  • 常量名称习惯由大写字母组成,便于与变量区分;用define定义:bool define ( string $name , mixed $value [, bool $case_insensitive = false ] ),case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的
  • 用defined()检测常量是否存在

注意: 在 PHP 5.3.0 以后,可以使用 const 关键字在类定义之外定义常量。
2019-09-17补充: 常量的值;在 PHP 5 中,value 必须是标量( integer、 float、string、boolean、NULL)在 PHP 7 中还允许是个 array 的值。

输出
define('PRICE',100);

echo PRICE;//100
动态常量名

用变量的值做常量的名字:
constant()

define('PI',3.14);
$chang='PI';
echo constant($chang);

运算符

算数运算符

整型太大的话,会自动转换成浮点型:

var_dump(100000000000000000000000);//float(1.0E+23)

取模运算时,结果的正负仅仅取决于被除数的正负:

$a=-10;//换成10试试
$b=3;//换成-3试试
echo $a%$b;
比较运算符

比较运算符

三元运算符

(expr1) ? (expr2) : (expr3)
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

$test=1;
$re=$test??'不存在';//PHP7+写法
$re=$test?:'不存在';// PHP 5.3+普通写法
echo $re,PHP_EOL;
echo 'hi';
逻辑运算符

x xor y 异或 如果 x 和 y 有且仅有一个为 true,则返回 true

echo( (10 xor 1) ?:'假');//假
  1. 关于“短路”
// foo() 根本没机会被调用,被运算符“短路”了

$a = (false && foo());
$b = (true  || foo());
$c = (false and foo());
$d = (true  or  foo());
  1. 关于运算符优先级
    运算符优先级
    “||” 比 “or” 的优先级高
    “&&” 比 “and” 的优先级高
    =比 and or 的优先级高
$e = false || true;
$f = false or true;
var_dump($e, $f);//true false 
$g = true && false;
$h = true and false;
var_dump($g, $h);//false  true
递增递减运算符

递增递减运算符
递增或递减对布尔值无效!

字符串运算符

.就一个点,我只说一次!

赋值运算符

赋值运算符

控制结构

Switch case

注意:必须要使用 break 来阻止代码跳入下一个 case 中继续执行!

do while
do
{
   
要执行的代码;
}
while (条件);
for
for (初始值; 条件; 增量)
{
   
 要执行的代码;
}

注意:
上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)。
条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。

break 和continue 区别

break 在循环中作用是结束一个循环
break后面可以跟数字,表示跳出几层循环,默认为1
continue立即结束本次循环,继续执行下一次循环

函数

PHP 的真正威力源自于它的函数!
函数是一段封装好的代码,随时可调用。

定义格式

命名规则和变量命名一样,但是函数不区分大小写;
函数的名称应该提示出它的功能。

函数执行与返回流程

当函数所有语句执行完毕或者碰到return语句时,函数结束,交回执行权。

函数传参方式

函数内部变量与外界变量无关:

function t($a)
{
   
    $a += 1;
    return $a;
}

$a = 1;
t($a);
echo $a;//输出1

引用传参(不推荐,因为函数内部的语句影响到了外部的变量,破坏了函数的封装性):

function t(&$a)
{
   
    $a += 2;
    return $a;
}

$b = 1;
t($b);
echo $b;//输出3
函数作用域

global 关键字用于函数内访问全局变量。

$x=5;
$y=10;

function myTest()
{
   
global $x,$y;
$y=$x+$y;
}

myTest();
echo $y; //15;

PHP将所有全局变量存储在一个名为$GLOBALS[index]的数组中。index为 保存变量的名称。上面的实例可以写成这样:

$x=5;
$y=10;

function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值