重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
变量的定义:在整个php脚本中可以发生改变的量叫做变量
10余年的通化网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整通化建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“通化网站设计”,“通化网站推广”以来,每个客户项目都认真落实执行。
变量命名的规则:
①所有的变量必须用$ 来修饰
②由字母数字下划线组成
③不能用数字开头
④可以是中文,但一般不用,不能包含特殊字符
⑤变量名区分大小写
四种标量数据类型:整型、实型(浮点型) 字符型布尔型
两种特殊类型:资源 NULL
两种复合数据类型:数组和对象
常量定义:在整个程序运行过程中其值不发生改变的量,切记常量不加$
例如:define(“A”,10); echo A; 输出10
Defined(常量名) //检测常量是否被设置
常量可以一旦被定义不能被修改,在整个运行过程中不可以改变的量
变量可 以改变的量,常量占内存,变量不占内存 因为变量在脚本执行结束时会自动释放
PHP主要有八种基本数据类型,其中包括:
1.四种变量类型
整数型(integer)
浮点数型(float)
布尔型(boolean)
字符串(string)
2.两种复合类型
数组(array)
对象(object)
3.两种特殊类型
NULL
资源
(resource)
PHP中的每个变量都有一个针对它的作用域,它是指可以在其中访问变量(从而访问它的值)的一个领域。对于初学者来说,变量的作用域是它们所驻留的页面。我们为大家收集整理了关于PHP的变量,以方便大家参考。
变量是程序中或以变化的量,用于存储数字、字符串或函数的结果。
一旦设置了某个变量,我们就可以在脚本中重复地使用它。
PHP 中的所有变量都是以 $ 符号开始的。
在 PHP 中设置变量的正确方法是:
$var_name = value;
PHP 的入门者往往会忘记在变量的前面的 $ 符号。如果那样做的话,变量将是无效的。
下面我们创建一个存有字符串的变量,和一个存有数值的变量:
$txt = "Hello World!";
$number = 16;
?
PHP 是一门松散类型的'语言(Loosely Typed Language)
在 PHP 中,不需要在使用变量之前先声明该变量。
在上面的例子中,您看到了,不必向 PHP 声明该变量的数据类型。
根据变量被设置的方式,PHP 会自动地把变量转换为正确的数据类型。
在强类型的编程语言中,您必须在使用前声明变量的类型和名称。
在PHP中,变量会在使用时被自动声明。
变量的命名规则
变量名必须以字母或下划线 "_" 开头。
变量名只能包含字母数字字符以及下划线。
变量名不能包含空格。
如果变量名由多个单词组成,那么应该使用下划线进行分隔(比如 $my_string),或者以大写字母开头(比如 $myString)。
借用“短发人”的数据,手工完善一下。
boolean (布尔型) 一般用于判断,true或false。比如是否检测,是否完成,是否毕业等。
integer (整型)一般用于年龄,数量等没有小数点的计算。比如1 2 33 -9等。
float (浮点型, 也称作 double) 一般用于金钱,面积、体积等科学,含小数点的计算。比如3.1415926585897932
string (字符串)一般用于人名,物品等常规字符串。比如“张三”“桌子”“我来了”
array (数组)一般用于复杂数据处理,可以多维数据结构,可以放布尔、整型、浮点、字符、数组等。
object (对象) 一般用于面向对象,里面包含方法和变量。
PHP 支持8种基本的数据类型。
一:四种标量类型:
1、boolean (布尔型)
2、integer (整型)
3、float (浮点型, 也称作 double)
4、string (字符串)
二:两种复合类型:
1、array (数组)
2、object (对象)
三:两种特殊类型:
1、resource (资源)
2、NULL (NULL)
PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。
变量名 =》 zval
变量值 =》zend_value
问题:
引用计数
变量传递,变量赋值
变量的基础结构
变量值:zend_value
typedef union _zend_value {
zend_long lval; /* long value */
double dval; /* double value */
zend_refcounted *counted;
zend_string *str;
zend_array *arr;
zend_object *obj;
zend_resource *res;
zend_reference *ref;
zend_ast_ref *ast;
zval *zv;
void *ptr;
zend_class_entry *ce;
zend_function *func;
struct {
uint32_t w1;
uint32_t w2;
} ww;
} zend_value;
变量名:_zval
typedef struct _zval_struct zval;
struct _zval_struct {
zend_value value; /* value */
union {
struct {
ZEND_ENDIAN_LOHI_4(
zend_uchar type, /* active type */
zend_uchar type_flags,
zend_uchar const_flags,
zend_uchar reserved) /* call info for EX(This) */
} v;
uint32_t type_info;
} u1;
union {
uint32_t var_flags;
uint32_t next; /* hash collision chain */
uint32_t cache_slot; /* literal cache slot */
uint32_t lineno; /* line number (for ast nodes) */
uint32_t num_args; /* arguments number for EX(This) */
uint32_t fe_pos; /* foreach position */
uint32_t fe_iter_idx; /* foreach iterator index */
} u2;
};
变量类型【type】
/* regular data types */
#define IS_UNDEF 0
#define IS_NULL 1
#define IS_FALSE 2
#define IS_TRUE 3
#define IS_LONG 4
#define IS_DOUBLE 5
#define IS_STRING 6
#define IS_ARRAY 7
#define IS_OBJECT 8
#define IS_RESOURCE 9
#define IS_REFERENCE 10
/* constant expressions */
#define IS_CONSTANT 11
#define IS_CONSTANT_AST 12
/* fake types */
#define _IS_BOOL 13
#define IS_CALLABLE 14
/* internal types */
#define IS_INDIRECT 15
#define IS_PTR 17
true 和 flase 没有zend_value 结构, 直接通过type来区分,zend_long和double的变量指直接存储在_zend_value中,不需要额外的value指针。