PHP 基础语法 常量 变量
PHP基础语法
标记
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="GBK" />
<title>PHP脚本程序<?php echo '--包青天';?></title>
</head>
<body>
<?php echo '卧槽<br />';?>
<br />
</body>
</html>
<?php echo '泥煤';
// 脚本至此结束,并无 PHP 结束标记
<?php $expression=false; ?>
<?php if ($expression == true): ?>
This will show if the expression is true.
<?php else: ?>
Otherwise this will show.
<?php endif; ?>
指令分隔符
注释
<?php
echo "This is a test"; // This is a one-line c++ style comment
/* This is a multi line comment
yet another line of comment */
echo "This is yet another test";
echo 'One Final Test'; # This is a one-line shell-style comment
?>
PHP常量
- 常量前面没有美元符号($);
- 常量只能用 define() 函数定义,而不能通过赋值语句;
- 常量可以不用理会变量的作用域而在任何地方定义和访问;
- 常量一旦定义就不能被重新定义或者取消定义;
- 常量的值只能是标量。
常量相关方法
- name:常量名
- value:常量的值,仅允许标量和 null。标量的类型是 integer, float,string 或者 boolean。也能够定义常量值的类型为 resource ,但并不推荐这么做,可能会导致未知状况的发生
- case_insensitive:如果设置为 TRUE,该常量则大小写不敏感,默认是大小写敏感的。大小写不敏感的常量以小写的方式储存
define ( "CONSTANT", "白乾涛" );
const NAME = '包青天'; // 在 PHP 5.3.0 后可以使用 const 关键字在类定义之外定义常量
echo CONSTANT; // 不应该在常量前面加上 $ 符号
echo constant ( "NAME" ); // 返回一个常量的值
echo Constant; // 输出 "Constant" 并发出一个E_WARNING级别错误信息
echo defined ( "CONSTANT" );//结果为【1】
const CONSTANT = '会报错,Notice: Constant CONSTANT already defined'; // 不能被重新定义
8个魔术常量
- __LINE__:文件中的当前行号。
- __FILE__:文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。
- __DIR__:文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新加)
- __FUNCTION__:函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
- __CLASS__:类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。
- __TRAIT__:Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
- __METHOD__:类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
- __NAMESPACE__:当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
PHP变量
传值赋值和引用赋值
$a=1;
$aa=$a;//传值赋值
$b=&$a;//引用赋值
$aa=2;
echo $a;//1
$b=2;
echo $a;//2
$bar = &(24 * 7); // 非法,只有有名字的变量才可以引用赋值
变量相关方法
- 如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
- 如果您想在函数中 unset() 一个全局变量,可使用 $GLOBALS 数组来实现。
- 如果在函数中 unset() 一个通过引用传递的变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。
- 如果在函数中 unset() 一个静态变量,那么在函数内部此静态变量将被销毁。但是,当再次调用此函数时,此静态变量将被复原为上次被销毁之前的值。
全局变量
<?php
$a = 1; // global scope
$b = 2;
function Test() {
echo "这是一个局部变量【{$a}】<br />"; // 这里的 $a 是一个局部变量,由于在这个范围内,它并没有被赋值,所以会报错
}
function Sum() {
global $a, $b; // 在【函数中】声明了【全局变量】$a 和 $b 之后,对变量的【所有引用】都会指向其全局版本
$b = $a + $b;
echo "全局变量在函数中使用时必须声明为global【{$b}】<br />";
}
function Sum2() {
$GLOBALS ['b'] = $GLOBALS ['a'] + $GLOBALS ['b']; // 使用 $GLOBALS 替代 global
echo "使用 \$GLOBALS 替代 global【{$GLOBALS ['b']}】<br />";
}
Test ();
Sum ();
echo "方法内对全局变量操作后,会影响所有的引用【{$b}】<br />";
Sum2 ();
?>
静态变量
function test() {
static $a = 0; // 变量 $a 仅在第一次调用 test() 函数时被初始化,之后每次调用 test() 函数时都是使用之前保留的值
echo "$a <br />";
$a ++;
}
test (); // 0
test (); // 1
//递归函数
function test() {
static $count = 0;
$count ++;
echo $count;//12345
if ($count < 5) {//写递归函数时要确保有充分的方法可以中止递归,因为可能会无穷递归下去
test ();//递归函数是一种会调用自己的函数
}else echo "<br />";
echo $count;
$count --;//
}
可变变量
$abc = 'test'; // 定义了一个变量$abc,里面存了值test
$$abc = '包青天'; // 使用两个美元符号$以后,就可以作为一个可变变量的变量了
echo $$abc; // 包青天
echo $test; // 包青天
PHP 基础语法 常量 变量的更多相关文章
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- JAVA_SE基础——7.常量&变量
上一篇,我讲了标识符&关键字 这篇我来解释下变量&常量~~~ 变量与常量这两个概念相信大家都不会感到陌生,在数学中就已经涉及了变量与常量.理解变量与常量,可以举这样一个例子: 例 ...
- Java基础语法(2)-变量
title: Java基础语法(2)-变量 blog: CSDN data: Java学习路线及视频 1.什么是变量? 变量的概念 内存中的一个存储区域 该区域的数据可以在同一类型范围内不断变化 变量 ...
- Java基础语法01——变量与运算符
本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).
- javascript基础语法备忘录-变量和数据类型
//javascript基础语法备忘录-变量和数据类型 // 定义变量使用var关键字 后面跟变量名,不要使用eval 和arguments为变量名 var message = "hi&qu ...
- 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式
本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式
- python基础语法(变量与数据类型)
python基础语法(变量与数据类型) 一.python变量 python中的变量不需要声明.每个变量在使用钱都需要赋值,变量赋值以后,该变量才会被创建 在python中,变量就是变量,它没有类型,我 ...
- swift 2.0 语法 常量变量
import UIKit /*: 常量变量 * 常量: let * 变量: var 完整格式: * 修饰符(let/var) 常量/变量名称: 数据类型 */ let number: Int var ...
- swift基础语法之——变量和常量
swift使用let关键字来定义常量,使用var来定义变量,变量在使用前必须初始化(赋初始值) swift是类型安全语音,即不同类型的变量不能一起运算,必须转成同一类型才可以 变量的类型在声明时不必给 ...
随机推荐
- Android 如何把一个 RelativeLayout或ImageView背景设为透明
在项目中,需要把RelativeLayout 和 ImageView背景设置为透明,怎么实现呢?这里主要通过代码,请参阅以下关键代码: public ImageView imgDetail; pri ...
- 转:二十、java的抽象类
http://blog.csdn.net/liujun13579/article/details/7737667 现实世界中,人们表征世界时,会把现实世界中的很多类具有相同特征的事物归为一个抽象类.比 ...
- UVA_393_Doors_(计算几何基础+最短路)
描述 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=5&page ...
- Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞(CVE-2013-4350)
漏洞版本: Linux kernel 漏洞描述: BUGTRAQ ID: 62405 CVE(CAN) ID: CVE-2013-4350 Linux Kernel是Linux操作系统的内核. Lin ...
- STM32F0308开发环境的选择--CooCox CoIDE篇
STM32的开发环境有很多总,官方手册也提供了IAR Embedded Workbench.MDK-ARM和TrueSTUDIO这3种.今天我试用了CooCox CoIDE,是免费的集成开发环境,同T ...
- android学习—— LayoutInflater的使用
在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于findViewById(),不同点是LayoutInflater是 用来找layout下xml布局文件,并且实例化!而fi ...
- cf293E Close Vertices(树分治+BIT)
E. Close Vertices You've got a weighted tree, consisting of n vertices. Each edge has a non-negative ...
- bzoj 1036 [ZJOI2008]树的统计Count(树链剖分,线段树)
1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 10677 Solved: 4313[Submit ...
- 常用的Git命令
我的常用的Git命令 Git仓库配置常用 1. clone 克隆一份远程的Git版本库 git clone git://github.com/someone/some_project.git some ...
- [SAM4N学习笔记]按键程序(查询方式)
一.准备工作: 将上一节搭建的工程复制一份,命名为"5.key scanf".这一节主要讲如何使用SAM4N的GPIO输入功能,实现按键的输入. 二.程序编写: ...