博客列表 >变量的进阶知识与实战--2018-8-23

变量的进阶知识与实战--2018-8-23

晓明的博客
晓明的博客原创
2018年08月23日 11:46:28542浏览

一:什么是变量的作用域

      三种作用域: 全局, 在函数之外创建的变量,可在函数外部直接使用
          局部,函数内部创建的变量,仅限在函数内部使用
         静态,函数内部创建,仅在内部使用并且函数执行后他的值不消失

    

实例

<?php
/**
 * 变量作用域
 */
echo '<h3>变量作用域</h3>';
echo '<hr color="green">';

// php只有函数作用域


$siteName = 'php中文网'; // 全局变量
// 当用户定义一个全局变量的时候,这个变量同时也自动成为超全局变量数组$GLOBALS的一个元素
//$GLOBALS['siteName'] = 'php中文网';
// 超全局变量不受作用域限制
//php中函数的声明使用关键字: function 函数名(参数列表,多个参数用逗号分开) { 多条语句}
//创建一个函数,就意味着创建出一个作用域, 执行环境
// 函数中的执行结果用return 返回给调用 者
function hello()
{
//    global $siteName;
    $userName = 'Peter Zhu'; // 局部变量

//    return $userName .'是' .$siteName . '的讲师';
    return $userName .'是' .$GLOBALS['siteName'] . '的讲师';
}

echo '<h3>', hello(), '</h3>';

//echo $siteName;
echo '<hr color="red">';
function myStatic()
{
   static $num = 1;

    return '第'.$num.'次输出'.$num++. '<br>';
}

echo  myStatic(), '<br>';
echo myStatic(), '<br>';
echo myStatic(), '<br>';
echo myStatic(), '<br>';

运行实例 »

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

实例

<?php
/**
 * 变量作用域
 */
echo '<h3>变量作用域</h3>';
echo '<hr color="green">';

// php只有函数作用域


$siteName = 'php中文网'; // 全局变量
// 当用户定义一个全局变量的时候,这个变量同时也自动成为超全局变量数组$GLOBALS的一个元素
//$GLOBALS['siteName'] = 'php中文网';
// 超全局变量不受作用域限制
//php中函数的声明使用关键字: function 函数名(参数列表,多个参数用逗号分开) { 多条语句}
//创建一个函数,就意味着创建出一个作用域, 执行环境
// 函数中的执行结果用return 返回给调用 者
function hello()
{
//    global $siteName;
    $userName = 'Peter Zhu'; // 局部变量

//    return $userName .'是' .$siteName . '的讲师';
    return $userName .'是' .$GLOBALS['siteName'] . '的讲师';
}

echo '<h3>', hello(), '</h3>';

//echo $siteName;
echo '<hr color="red">';
function myStatic()
{
   static $num = 1;

    return '第'.$num.'次输出'.$num++. '<br>';
}

echo  myStatic(), '<br>';
echo myStatic(), '<br>';
echo myStatic(), '<br>';
echo myStatic(), '<br>';

运行实例 »

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

   二:变量的类型检测

       is_null(), empty(), isset()来实现

     <?php
/**
 * is_null(), empty(), isset()
 */

// is_null()
$val1;  // 声明但未赋值
$val2 = null; // 声明并初始化
$val3 = 'php';
unset($val3);

@var_dump(is_null($val1) ? true : false);
@var_dump(is_null($val2) ? true : false);
@var_dump(is_null($val3) ? true : false);

// empty()
// 空字符串, 空数组, null, 0 / '0' / false  返回 true

$str1 = '';
$str2 = []; // 空数组
$str3 = 0;
$str4 = '0';
echo '<hr>';
@var_dump(empty($str1) ? true : false);
@var_dump(empty($str2) ? true : false);
@var_dump(empty($str3) ? true : false);
@var_dump(empty($str4) ? true : false);

//isset():检测一个变量是否存在? 是 null 反操作
// 变量已经存在,并且它的值不是null,返回true
echo "<hr>";
$a = null;
var_dump(isset($a));
$b = 'zhu';
var_dump(isset($b));
$c;  // 等价于  $c = null
var_dump(isset($c));



 三:常量的定义和声明

    

实例

<?php
/**
 *常量:只读变量,不可更新,不可删除,没有作用域限制,直接在函数中使用而不声明
 * 通常常量全部采用大写字母,并且不能以$开头,多个单词建议中间用下划线连接
 */
echo '<h3>常量声明,赋值,输出</h3>';
echo '<hr color="green">';

//创建
define('SITE_NAME','Peter Zhu的博客'); // define()函数
const COUNTRY = '中国'; // 关键字const

//访问
echo SITE_NAME, COUNTRY, '<br>';

echo constant('SITE_NAME'),'<br>';

//echo '<pre>',print_r(get_defined_constants(),true),'</pre>';

//检测
echo defined('SITE_NAME1') ? '已定义' : '<span style="color:red">未定义</span>';

运行实例 »

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

 四:数组的简单使用

  

实例

<?php
/**
 * 数组的知识
 */
echo '<h3>数组的创建访问与更新</h3>';
echo '<hr color="green">';

//创建
$city = ['合肥','上海','杭州','南京']; //索引数组
echo $city[0], '<br>';
echo $city[2], '<br>';

// 键值对
$user = ['id'=>10,'name'=>'猪哥','course'=>'php','grade'=>89]; //关联数组
echo $user['name'],'<br>';
echo $user['grade'],'<br>';

//更新
$user['name'] = '朱老师';
echo $user['name'],'<br>';

//删除
//unset($user['grade']);
unset($user);
echo '<pre>',print_r($user,true);

运行实例 »

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

    五.条件判断都和选择结构

实例

<?php
/**
 * 流程控制: 条件判断与多分支
 */

//1.单分支
$grade = 55;
if ($grade < 60) {
    echo '<p style="color:red">很不幸,您得补考</p>';
}

//2.双分支
$grade = 75;
if ($grade < 60) {
    echo '<p style="color:red">很不幸,您得补考</p>';
} else {  // $grade >= 60
    echo '<p style="color:green">恭喜,及格了</p>';
}

//3.多分支
$grade = 85;
if ($grade < 60) {
    echo '<p style="color:red">很不幸,您得补考</p>';
} else if ($grade >= 60 && $grade < 80) {  // $grade >= 60
    echo '<p style="color:green">考得还不错</p>';
} else if ($grade >= 80 && $grade <= 100) {  // $grade >= 60
    echo '<p style="color:green">真TM的是个天才</p>';
}

//4.三元判断:双分一个简写
$age = 16;
echo ($age >= 18) ? '<script>alert("已成年,可以浏览但不可沉迷其中")</script>' : '<p style="color:red">未成年自觉离开</p>';

//5 switch
$program = 'Java';
switch (strtolower($program)) {
    case 'php':
        echo '<p>php是全世界最好的编程语言~~</p>';
        break;
    case 'java':
        echo '<p>通用的编程语言~~</p>';
        break;
    case 'html':
        echo '<p>超文本标记语言~~</p>';
        break;
    default:  // 相当于 else
        echo '<p>你关心的语言未收录~~</p>';
}

运行实例 »

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

 

  六.for循环结构

   

实例

<?php
/**
 * 循环结构: for
 * for (初始条件; 结束条件; 更新条件) { 循环体 }
 */

for ($i=0; $i<10; $i++) {
//    print($i.',');
//    print($i);
//    if ($i < 9) {
//        print(',');
//    }

    ($i<9) ? print($i.',') : print($i);

}

运行实例 »

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



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