php数据类型

php支持八种原始的数据类型
4种标量类型
boolean
integer
float(doublestring

2种复合类型
array
object

2种特殊类型
resource
NULL

类型函数

bool settype(mixed $var, string $type):将$var强制转换成type类型
string gettype(mixed $var):返回变量$var的类型
bool is_type($var):判断变量是否为该类型

输出函数

echo():输出一个或多个字符串
print():输出一个或多个字符串(效率比echo()慢)
printf():同C语言,格式化输出
print_r():常用与输出数组
var_dump($var):输出某个表达式的值和类型

数据类型介绍:
boolean:布尔类型
TUREFALSE,不区分大小写。

以下值被认为是FALSE
- 布尔值FALSE本身
- 整型值0(零)
- 浮点型0.0(零)
- 空字符串,以及字符串"0"
- 不包含任何元素的数组。
- 特殊类型NULL(包括尚未赋值的变量)

—所有其他值都被认为是TRUE

Integer:整型
可以十进制,十六进制(0x),八进制(0),二进制(0b),如果一个数超出了integer的范围,将会被解释成float,同样如果执行的运算结果超出了integer范围,也会返回float

//PHP中没有整除运算符,1/2会产生float 0.5。
echo 1/2;   //输出:0.5
echo "<br/>";
echo (integer)1/2;  //输出:0,integer强制转换为整型
echo "<br/>";
echo round(1/2);  //输出:1,round()四舍五入
echo "<br/>";
echo (integer)0.8;  //输出:0,当从浮点型转换成整数时,将向下取整数(去尾法)

Float:浮点型
要测试两个float是否相等,不要直接比较两个float数是否相等,可以使用一个仅比该数值大一丁点的最小误差数。

String:字符串
一个string就是由一系列的字符组成,每个字符等同于一个字节。

string可以用4种方式表达:
//单引号:单引号内的字符串中的变量和特殊字符的转义序列不会被替换
//$a'\n'在控制台原样输出
$a = 'hello, world';
echo '$a\n';
echo "\n";

//双引用会对变量和转义字符进行替换
//$a'\n'在控制泰会被解析后输出
$a = 'hello, world';
echo "{$a}你好吗\n";

//heredoc结构:相当于双引号,能解析变量和转义符
//<<<"符号" 符号; 或者 <<<符号 符号;
$str1 = <<<EOF
第一行
第二行
第三行
第四行
{$a}
EOF;
echo $str1;

$str2 = <<<"EOF"
第一行
第二行
第三行
第四行
{$a}
EOF;
echo $str2;

//nowdoc结构:相当于单引号,不能解析变量和转义符
//<<<'符号' 符号;
$str3 = <<<'EOF'
第一行
第二行
第三行
第四行
{$a}
EOF;
echo $str3;

Array:数组
php中的数组是一个有序映射,映射就是一种把values关联到keys的类型,array可以接受任意数量用逗号分割的健值对。

key:可以是一个整型integer或字符串string。(注:php可以同时包含integerstring类型的键名)
value:可以是任意类型的值。

  • 包含有合法整型值的字符串会被转换为整型(如"8"会被转换为8,但是"08"不能转换为8
  • 浮点数会被转换为整型,意味着小数部分会被舍去
  • 布尔值会被转换为整型
  • NULL会被转换为空字符串,即""
  • 数组和对应不能被用为键名
//数组定义:
$arr1 = array(
                    "key1" => "value1",
                    "key2" => "value2"
            );
var_dump($arr1);   //echo不能直接对数组进行输出

如果数组中定义了多个单元都用了同一个键名,则只会使用最后一个,之前其他的都会被覆盖。

 $arr2 = array(
                1 => "a",
                2.2 => "b",
                true => "c"  //会对之前key为1的进行覆盖
            );

如果对给出的值没有指定键名,则取当前最大的整数索引值,则新的键名将是该值+1,如果指定的键名已经有值,则该值会被覆盖,所以key为可选项,如果未指定,php将自动使用之前用过的最大的integer键名+1作为新键名,最小值为0,如果当前还没有整数索引,键名为0

$arr2[] = 4;
var_dump($arr2);  

$arr3 = array(
                     "a",  //键值为0
                     "b",  //键值为1
                6 => "c",
                     "d"   //键值为7
            );

访问数组,可以用array[key]语法访问,也可以使用array{key}

$arr4 = array(
                    "key1" => "value1",
                    "key2" => "value2"
            );
var_dump($arr4["key1"]);
echo "<br/>";
var_dump($arr4{"key1"});
//数组的创建
$arr5 = array(5 =>1, 4 => 2);  
            var_dump($arr5);
            echo "<br/>";
//添加一个新的key-value对
$arr5[] = 3;  
var_dump($arr5);
echo "<br/>";
//如果x存在,则覆盖value,如果不存在,添加
$arr5["x"] = 5;  
var_dump($arr5);
echo "<br/>";
//移除该键值对
unset($arr5[4]);  
var_dump($arr5);
echo "<br/>";
//移除整个数组
unset($arr5);  
var_dump($arr5);
echo "<br/>";
//注意:这里所使用的最大整数键名不一定就是当前数组中,它只要在上次数组重新生成索引后曾经存在过就行了。
$arr6 = array(1, 2, 3, 4, 5, 6);
print_r($arr6);
echo "<br/>";
foreach ($arr6 as $i => $value){  //遍历数组,移除所有元素
        //echo $value;
        //echo "<br/>";
        unset($arr6[$i]);
}
print_r($arr6);  //此时数组为空
echo "<br/>";

$arr6[] = 9;  //此时添加一个key-value(注意键名为6,不为0)
print_r($arr6);
echo "<br/>";

$arr6 = array_values($arr6);  //重新索引
$arr6[] = 10;  //此时key为1,上一个key为0
print_r($arr6);
echo "<br/>";
unset()函数允许删除数组中的某个键值对,但不会重新索引排序,如果需要删除后重建索引,可以用array_value()函数
foreach as 控制结构专门用于数组的,它提供了一个简单的方法来遍历数组
//对于任意integer,float,string,boolean类型,如果将一个值转换为只有一个元素的数组(下标为0)
$var = "你好";
var_dump(array($var));

Object:对象,要创建一个新的对象object,使用new语句实例化一个类。

class Foo
{
    function  do_foo()
    {
        echo "doing foo.."."<br/>";
    }
}

$bar = new Foo();
$bar -> do_foo();

Resource资源类型:是一种特殊变量,保存了到外部资源的一个引用。

NULL:表示一个变量没有值。
is_null():判断一个变量是否为NULL
unset():移除。
一个变量被认为NULL三种情况:

  • 被赋值为NULL
  • 尚未被赋值
  • 被unset()

mixed:说明一个参数可以接受多种不同的(但不一定是所有的)类型。

注:php在变量定义中不需要(不支持)明确的类型定义,变量类型是根据该变量的上下文所决定的。也就是说:

  • 如果把一个string类型的值赋值给变量$var,则$var变成string类型;
  • 如果又把一个integer赋给$var$var变成integer类型;
强制转换函数:
(integer)$var;
(boolean)$var;
(float)$var;
(string)$var;
(array)$var;
(object)$var;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值