博客列表 >PHP中变量作用域、类型及检测、分支结构

PHP中变量作用域、类型及检测、分支结构

罗盼的博客
罗盼的博客原创
2018年08月23日 14:02:27692浏览

实例

<?php
//设置字符集
header("content-type:text/html;charset=utf-8");
//常量定义,不可改变,不可删除
define('HERE_SITE','www.php.cn');
const CITY = '西安';
echo HERE_SITE;
echo CITY;
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

 什么是变量的作用域?
变量的作用域:变量可以使用的代码的范围

1.局部变量:仅作用于方法(function)中使用,方法外此变量不可被使用或者引用

实例

<?php
function get_user_name()
{
         $id = 1;
        if($id == 1){
            return "luo";
        }else{
            return "zhu";
        }        
}

/*
echo get_user_name();会正确输出luo,说明我们的$id变量在函数内部起作用
echo $id;如果此时输出$id会提示你此变量未被定义:说明我们在函数中定义的变量,外部不可调用
*/
echo get_user_name();
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例



2.全局变量:方法function外定义的变量,作用于全局作用域
当前文件除过方法内都可生效,其他文件需要引用的话,需要include 或者requiire包含当前文件。

实例

<?php
$user_id =1 ;
function get_user_name_one()
{
         global $user_id ;//声明$id为全局变量
        if($user_id == 1){
            return "luo";
        }else{
            return "zhu";
        }        
}
/*如果此时在方法里声明$id为全局变量在方法里就可以使用
此时echo get_user_name_one();调用方法也是可以正确执行的
输出echo $user_id;也是有结果的
*/
echo get_user_name_one(),'<br>';
echo $id;
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例



3.超全局变量:如$_POST,$GLOBLES[],$SESSION,$FILE在根目录下的所有文件均可引用

实例

<?php
$GLOBALS['name'] = '警长';
function print_name()
{
 return "我是".$GLOBALS['name'] ; 
}

echo print_name();
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例



4.静态变量:static只在当前函数中使用,保持变量不被销毁

实例

<?php
function num()
{
   static $i= 1;
   return "第".$i."次输出".$i++;
    
}

echo num(),'<br>';
echo num(),'<br>';
echo num(),'<br>';
echo num(),'<br>';
echo num(),'<br>';
?>

运行实例 »

点击 "运行实例" 按钮查看在线实例


实例

/*变量类型:*/
/*变量类型:
1.标量:单值变量,数值,布尔,基本数据类型
*/
<?php

$city = "西安";
$float = 400.00;
$int = 10000;
$bool = false;
echo '我调查'.$city.'总人口约'.$float.'万,平均工资'.$int.'元--调查结果:',$bool?'正确':'错误';
echo '<hr>';

?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

/*变量类型:
2.复合类型:多值变量(数组array和对象object)
*/
$arr = array("0","1","2","3");
for($i=0;$i<count($arr);$i++){
 echo $arr[$i],'<br>';   
}
echo '<hr>';

$arr1 = array(
array('id'=>'1','name'=>'luopan','sex'=>'nan'),
array('id'=>'2','name'=>'zhangsan','sex'=>'nv')
);
foreach($arr1 as $k=>$v){
    
    echo '用户ID :'.$v['id'],'<br>';
    echo '用户姓名:'.$v['name'],'<br>';
    echo '用户性别:'.$v['sex'],'<br>';
}
echo '<hr>';

class frui_use{
    public $type;
    public $price;
    public $usage;
    
   
     public function eat(){
        return $this->type.'吃法是'.$this->usage;
    }
    
     public function price(){
        return $this->type.'价格是'.$this->price."元";
    }
    
    
}

$fruit = new frui_use;
$fruit->type = "苹果";
$fruit->price = 20;
$fruit->usage ="削皮";
echo $fruit->eat( );
echo '<hr>';
echo $fruit->price( );
echo '<hr>';


/*变量类型:
3.特殊类型:null,资源
*/
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "第一行\n";
fwrite($myfile, $txt);
$txt = "第二行\n";
fwrite($myfile, $txt);
fclose($myfile);

/*变量检测:
is_null(); 如果变量定义未被赋值,赋null值,被销毁返回ture
empty(); 如果变量为null,"",0,"0",空数组
isset(); empty结果取反
*/

$var ;
$var1 = null ;
$var2 = "pjj";
$var3 = "ok";
unset($var2);
@var_dump(is_null($var));
@var_dump(is_null($var1));
@var_dump(is_null($var2));
@var_dump(is_null($var3));
echo '<hr>';

$str = null;
$str1 = "";
$str2 = 0;
$str3 = "0";
$str4 = array();
@var_dump(empty($str));
@var_dump(empty($str1));
@var_dump(empty($str2));
@var_dump(empty($str3));
@var_dump(empty($str4));
echo '<hr>';

$number= null;
@var_dump(isset($numbers));
echo '<hr>';


/*
分支结构
*/
/*1.if-else if-else*/
$age=22;
if($age<18){
    echo "你是一个小孩!";
}else if($age>=18 &&$age<60){
     echo "你是一个成年人!";
}else{
    echo "你是一个老年人!";
}

echo '<hr>';
/*2.switch*/
$pilotLamp = 20;
switch($pilotLamp){
    case 0 :
       echo "红灯亮了,停下来!";
       break;
    case 1 :
       echo "绿灯灯亮了,赶紧走!";
       break;
    case 2 :
       echo "黄灯灯亮了,等一下!";
       break;
    default: echo "指示灯坏了!";
}







声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议