变量的类型和应用

原创 2018-11-14 17:08:39 400
摘要:<?php//1.局部变量:函数内部function demo1(){    $str1 = '我是函数内部变量str1';    return $str1;}//只能在函数中访问echo demo1();//2.全局变量:在函数外部定义(只能在函数外访问)$str2 = '我是函数外部定义的变量str2';functi

<?php
//1.局部变量:函数内部
function demo1(){
   $str1 = '我是函数内部变量str1';
   return $str1;
}
//只能在函数中访问
echo demo1();

//2.全局变量:在函数外部定义(只能在函数外访问)
$str2 = '我是函数外部定义的变量str2';
function demo2(){
   //return $str2 ? $str2:'不可访问';//   报错
}
//echo demo2();
echo $str2;
echo '<hr>';

//3.在函数的参数列表中定义变量
function demo3($str3){
   return $str3;
}
echo demo3('123');
echo '<hr>';
function demo4($a1,$a2){
    $a1 = func_get_arg(0);//func_get_arg(0)是参数列表中的第一个变量,1是第二个
    $a2 = func_get_arg(1);
    return $a1.'和'.$a2;
}
echo demo4('我','她');


/* 在函数内访问全局变量的3中方法
1.关键字:global
2.预定义变量:$GLOBALS
3.参数传参数:function($args){}
*/
//创建一个全局变量
$thief = '小偷';
function catching(){
   //1.关键字:global
   global $thief;
   //2.预定义变量:$GLOBALS
   $thief = $GLOBALS['thief'];
   return isset($thief) ? '抓住'.$thief : '没有抓住';//isset是判断是否存在
}
echo catching();

  //3.传参数
echo '<hr>';
function catching2($a){
   return isset($a) ? '抓住'.$a : '没有抓住';
}
echo catching2($thief);


//1.标准类型
//字符串
$name = '小明';
//整型
$age = 20;
//浮点数
$salary = 3000.5;
//布尔类型
$isMarried = false;
echo gettype($name).'<br>';// gettype()是获取变量类型
echo gettype($age).'<br>';
echo gettype($salary).'<br>';
echo gettype($isMarried);
echo '<hr>';

//2.复合类型:数组array,对象object
//数组
$xiao = ['鼬神','角都','长门'];
echo '最喜欢的是:'.$xiao[0].'<br>';
echo count($xiao).'<br>';//count()是显示数组元素的个数
echo '首领是:'.$xiao[count($xiao)-1];

//3.对象
echo'<hr>';
$bell = new stdClass();
$bell->name = '小明';
$bell->cook = function($foods){
   return '会做'.$foods;
};
echo $bell->name.call_user_func($bell->cook,'猪蹄');

//4.NULL和 资源resource
echo '<hr>';
$file = fopen('demo3.php','r') or die('打开失败');
echo gettype($file);


//全局作用域
$name = '小明';
//函数作用域
function miss($demo){
   return $GLOBALS['name'].'今年'.$demo.'岁';
}
echo miss('20');
echo '<hr>';
//超全局变量
echo $_GET['ha'];//获取url的?后面的变量


//1.定义常量
//函数
define('FACTION','晓组织');
//const关键字
const USER_NAME = '长门';

//2.访问
echo FACTION.'的首领是:'.USER_NAME;

//3.define 和 const的区别
$num = 100;
define('NUMBER',$num);
echo NUMBER.'<br>';

//const NUMBER2 = $num;
//echo NUMBER2;//会报错  const的值只能是标准变量

//const可以声明类常量
class Test{
   const FIX = 'shuo';
}
echo Test::FIX;

批改老师:查无此人批改时间:2018-11-14 17:32:22
老师总结:标题写的常量,打开看到是变量,以为你弄错了呢,差点给你打回去。翻到下面才看到常量,不错。

发布手记

热门词条