Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

名站导航为爱好php程序的朋友们提供php相关的教程知识。

现在我们已经可以从符号表中获取用户在PhP程序语言里定义的变量了,是该做点其它事的时候了,举个比例,比如给它来个类型转换:-)。想想C语言中的类型转换细则,你的头是不是已经大了?但是变量的类型转换就是如此重要,如果没有,那我们的具体代码如下就会是下面这样了:ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

void display_zval(zval *value)
{
    switch (Z_TYPE_P(value)) {
        case IS_NULL:
            /* 如果是NULL,则不输出任何东西 */
            break;
        
        case IS_BOOL:
            /* 如果是bool类型,并且true,则输出1,否则什么也不干 */
            if (Z_BVAL_P(value)) {
                php_printf("1");
            }
            break;
        case IS_LONG:
        /* 如果是long整型,则输出数字形式 */
            php_printf("%ld", Z_LVAL_P(value));
            break;
        case IS_DOUBLE:
        /* 如果是double型,则输出浮点数 */
            php_printf("%f", Z_DVAL_P(value));
            break;
        case IS_STRING:
        /* 如果是string型,则二进制安全的输出这个字符串 */
            PhP程序WRITE(Z_STRVAL_P(value), Z_STRLEN_P(value));
            break;
        case IS_RESOURCE:
        /* 如果是资源,则输出Resource #10 格式的东东 */
            php_printf("Resource #%ld", Z_RESVAL_P(value));
            break;
        case IS_ARRAY:
        /* 如果是Array,则输出Array5个字母! */
            php_printf("Array");
            break;
        case IS_OBJECT:
            php_printf("Object");
            break;
        default:
            /* Should never happen in practice,
             * but it's dangerous to make assumptions
             */
             php_printf("Unknown");
             break;
    }
}

看完上面的具体代码如下,你是不是有点似曾相识的感觉?o(∩∩)o...哈哈,和直接<?php echo $foo;?>这个简单到极点的php语句来比,上面的实现算是天书了。当然,真正的环境并没有这么�澹�内核中提供了好多函数专门来帮我们实现类型转换的功能,你需要的只是调用一个函数而已。这一类函数有一个统一的形式:convert_to_*()ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

//将任意类型的zval转换成字符串ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

void change_zval_to_string(zval *value)ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

{ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

    convert_to_string(value);ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

}ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

//其它基本的类型转换函数ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ZEND_API void convert_to_long(zval *op);ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ZEND_API void convert_to_double(zval *op);ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ZEND_API void convert_to_null(zval *op);ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ZEND_API void convert_to_boolean(zval *op);ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ZEND_API void convert_to_array(zval *op);ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ZEND_API void convert_to_object(zval *op);ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ZEND_API void _convert_to_string(zval *op ZEND_FILE_LINE_DC);ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

#define convert_to_string(op) if ((op)->type != IS_STRING) { _convert_to_string((op) ZEND_FILE_LINE_CC); }ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

这里面有两个比较特殊,一个就是convert_to_string其实是一个宏函数,调用的另外一个函数;第二个便是没有convert_to_resource()的转换函数,因为资源的值在用户层面上,根本就没有意义,内核不会对它的值(不是指那个数字)进行转换。ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

好了,我们用php的echo的时候会先把变量转换成字符串,但是我们看见convert_to_string的参数是zval*的,你是不是开始担心在进行数据转换时破坏了原来数据的值?而我们<?php $a=intval($b);?>并不会破坏$b的值。把原来的值破坏掉的做法绝对不是一个好主意,内核中在echo一个变量的时候也不是这样做的。在下一章,我们将知道怎样便可以在不损坏原变量值的情况下,进行convert_to_类操作。ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!


ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

名站网址导航

PhP程序内核探索:弱类型变量的实现ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

ehpAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

好了关于php程序的知识就说到这里希望可以帮助需要的朋友。,

标签:

分享到:

  admin

注册时间:

网站:0 个   APP:3 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市