php基础的一点注意事项
1.要弄懂“~”运算符的计算方法,首先必须明白二进制数在内存中的存放形式,二进制数在内存中是以补码的形式存放的
另外正数和负数的补码不一样,正数的补码,反码都是其本身,即:
正数9(1001)在内存中存储为01001,必须补上符号位
补码为01001
反码为01001,其中前面加的0是符号位,负数的是1
负数 -1(10001,开头的1为符号位)在内存中存放为,11111
其中11111为其补码
反码为11110
负数的补码是:符号位不变,其余各位求反,末位加1 ,即11111
反码是:符号位为1,其余各位求反,但末位不加1 ,即11110
也就是说,反码末位加上1就是补码
------------------------------------------------------------------------------------------------------------------------------------
弄懂了上述情况后,如何计算就好办了
假设有一个数~9,计算步骤如下,9=1001
其补码为01001,
对其取反10110,这个数是在内存中存放的,现在需要装换成原码,即先减1,然后取反得
11010,符号位为1是负数,即-10
2.单引号和双引号包含变量的区别
<?php
header("Content-type: text/html; charset=utf-8");
$a = "你好,欢迎来到PHP的世界!";
echo "<h3>$a</h3>";
echo '<h4>$a</h4>';
?>
输出结果:如果在单引号和双引号定义的字符串包含变量名,双引号所包含的变量名会自动被替换成变量的值,而在单引号中包含的变量名则按普通字符串输出,如下:
3.定界符:应用定界符定义字符串并输出,可以看出它和双引号没有什么区别,字符串中包含的变量也被替换成实际变量的值。(值得提出的一点,结束标识符必须单独另起一行,并且不允许有空格,如果在标识符前后有其他符号或字符就会发生错误)
<?php
header("Content-type: text/html; charset=utf-8");
$i = "PHP";
echo <<<std
Hello,welcome to here!<p>
Do you like $i?
std;
?>
4.条件为假的情况:
在PHP中,不是只有false值才是为假,在一些特殊情况下,如0、0.0、”0”、空白字符串("”)、只声明没有赋值的数组等,它们的布尔值也被认为是false。
5.php的数据类型可以分为3种,即标量数据类型、复合数据类型和特殊数据类型。
①标量数据类型:boolean(布尔型)、string(字符串型)、integer(整型)、float(浮点型)
②复合数据类型:array(数组;ps:数组下标是字符,在调用时下标需要单引号引起)、object(对象)
③资源(resource)、空值(null);
6.PHP中优先级从高到低顺序:&& > || > and > or;
7.函数名称是不区分大小写的,如果误定义了两个不同大小写的重名函数,程序将中止运行;而常量和变量的名称是区分大小写的。
8.函数的参数:
①按值传递方式:
<?php
header("Content-type: text/html; charset=utf-8");
function example($m){
$m = $m * 15 + 50;
echo "在函数内:\$m = ".$m;
}
$m = 1;
example($m);
echo "<p>在函数外:\$m = $m</p>";
?>
结果: 在函数内:$m = 65
在函数外:$m = 1
②按引用传递方式:
与按值传递方式唯一的不同就是多了一个“&”符号,表示将实参的内存地址传递到形参中。这时,在函数内部的所有操作都会影响到实参的值
<?php
header("Content-type: text/html; charset=utf-8");
function example(&$m){
$m = $m * 15 + 50;
echo "在函数内:\$m = ".$m;
}
$m = 1;
example($m);
echo "<p>在函数外:\$m = $m</p>";
?>
结果: 在函数内:$m = 65
在函数外:$m = 65
③默认参数(可选参数):
<?php
header("Content-type: text/html; charset=utf-8");
function values($price,$tax=""){
$price += ($price*$tax);
echo "价格:$price<br>";
}
values(200,0.1);
values(200);
?>
结果: 价格:220
价格:200
9.一维数组的遍历,eg:
<?php
header("Content-type: text/html; charset=utf-8");
$array = array('柯文鑫','大花','小花','笑话','校花');
foreach($array as $key => $value)
echo '数组下标'.$key.'数组元素'.$value."<br>";
echo "<br>";
// 数组下标0数组元素柯文鑫
// 数组下标1数组元素大花
// 数组下标2数组元素小花
// 数组下标3数组元素笑话
// 数组下标4数组元素校花
list($a,$b,$c,$d,$e) = $array;
echo '数组元素'.$a."<br>";
echo '数组元素'.$b."<br>";
echo '数组元素'.$c."<br>";
echo '数组元素'.$d."<br>";
echo '数组元素'.$e."<br>";
echo "<br>";
// 数组元素柯文鑫
// 数组元素大花
// 数组元素小花
// 数组元素笑话
// 数组元素校花
for($a = 0;$a < count($array);$a++)
echo '数组下标'.$a.'数组元素'.$array[$a]."<br>";
// 数组下标0数组元素柯文鑫
// 数组下标1数组元素大花
// 数组下标2数组元素小花
// 数组下标3数组元素笑话
// 数组下标4数组元素校花
?>
10.二维数组的遍历,eg:
<?php
header("Content-type: text/html; charset=utf-8");
$array = array(
'数组1' => array('1','2','3'),
'数组2' => array('4','5','6'),
'数组3' => array('7','8','9'));
print_r($array);
echo "<br>";
//Array ( [数组1] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [数组2] => Array ( [0] => 4 [1] => 5 [2] => 6 ) [数组3] => Array ( [0] => 7 [1] => 8 [2] => 9 ) ) //遍历二维数组
foreach($array as $key => $value )
foreach($value as $keys => $values) {
echo "<br>";
echo $array[$key][$keys];
}
//123456789 ps各占一行
?>
碰到的一些函数:
unset() --释放(销毁)给定的变量
substr() --返回字符串的子串
var_dump() --显示关于一个或多个表达式的结构信息,包括表达式的类型与值
addslashes() --自动转义函数
stripslashes() --还原字符串函数
PS:所有数据在插入数据库之前,有必要应用addslashe()函数进行字符串转义,以免特殊字符未经转义在插入数据库时出现错误。使用数据时应用stripslashes()函数进行还原,但数据在插入数据库之前必须再一次进行转义。
addcslashes() --用于实现对指定字符串中的字符进行转义,即在指定的字符charlist前加上反斜杠“\”
eg:后面的字符串代表从A开始到z的范围进行转码,当前面的大于后面将全部进行转义。
<?php
header("Content-type: text/html; charset=utf-8");
$str = 'abcdefghijk';
echo addcslashes($str,'A..z'); //\a\b\c\d\e\f\g\h\i\j\k
?>
stripcslashes() --用来将应用addcslashes()函数转义的字符串str返回原样
strlen() --获取字符串长度函数(汉子占两个字符,在utf-8编码格式下用strlen()函数汉子占三个字符)
mb_substr() --获取字符串的部分(不仅可以获取字符串,还支持中文字符串的获取)
eg:结果:PHP自学
<?php
header("Content-type: text/html; charset=utf-8");
$b = "PHP自学视频教程";
echo mb_substr($b,0,5,"UTF-8");
?>
strcmp($str1,$str2) --字符串比较函数,相等返回0,$str1>$str2,返回1,小于返回-1。区分大小写。ps:小写字母比大写字母大
strcasecmp($str1,$str2) --同strcmp()函数一样,只是不区分大小写
strnatcmp() --按自然排序法比较,在自然排序法中,2比10小;在计算机序列中,10比2小。区分大小写
strnatcasecmp() --和strnatcmp()函数一样,只是不区分大小写
strncmp() --按指定从源字符串的位置比较,区分大小写
eg:
<?php
header("Content-type: text/html; charset=utf-8");
$str1 = "str2";
$str2 = "str10";
$str3 = "mobook";
$str4 = "MOBOOK";
$str5 = "I like php";
$str6 = "i like my girlfriend";
echo strcmp($str1,$str2); //
echo strcmp($str3,$str4); //
echo strnatcmp($str1,$str2); //-1
echo strnatcmp($str3,$str4); //
echo strncmp($str5,$str6,6); //-1
?>
strstr() --用于获取一个指定字符串在另一字符串中首次出现的位置到后者末尾的子字符串。如果成功,则返回剩余字符串(存在相匹配的字符),否则返回false,区分大小写
stristr() --跟strstr()函数一样,只是不区分大小写
eg:
<?php
header("Content-type: text/html; charset=utf-8");
echo strstr("明日图书网","日")."<br>"; //日图书馆
echo strstr("http:www.baidu.com","w"); //www.baidu.com
?>
substr_count() --检索子串在字符串中出现的次数
str_replace() --替换函数,区分大小写
str_ireplace() --替换函数,不区分大小写
eg:
<?php
header("Content-type: text/html; charset=utf-8");
$str = "陈大花现在很困了,一躺下就想着睡觉的事情";
echo str_ireplace("大花","小花",$str); //陈小花现在很困了,一躺下就想着睡觉的事情
?>
substr_replace() --对指定字符串中的部分字符进行替换
eg:(ps:编码utf-8下,汉子占3个字符)
<?php
header("Content-type: text/html; charset=utf-8");
$str = "用今日的辛勤工作,换明天的双倍回报";
$replace = "百倍";
echo substr_replace($str,$replace,39,6); //用今日的辛勤工作,换明天的百倍回报
?>
trim() --去除字符串左右两边的空白字符串和特殊字符
ltrim() --去除字符串左边的空白字符串和特殊字符
rtrim() --去除字符串右边的空白字符串和特殊字符
number_format() --函数用来将数字字符串格式化
eg:(ps:该函数可以有1个、2个或4个参数,但不能有3个。1个参数时,数字字符串格式化后舍去小数点后的值;2个参数时,数字字符串格式化后保留n位小数点;4个参数时,第3个参数用来代替小数点“.”,第4个参数用来代替每1000隔开的逗号“,”)
<?php
$number = 3665.256;
echo number_format($number)."<br>"; //3,665
echo number_format($number,2)."<br>"; //3,665.26
$number2 = 123456.7890;
echo number_format($number2,2,'.',','); //123,456.79
?>
explode() --按照指定的规则对一个字符串进行分割,返回值为数组
implode() --将数组中的元素组成一个新的数组
eg:
<?php
header("Content-type: text/html; charset=utf-8");
$str = "php自学视频教程@java自学视频教程@Web自学视频教程@IOS自学视频教程";
$str_arr = explode("@",$str);
print_r($str_arr);
//Array ( [0] => php自学视频教程 [1] => java自学视频教程 [2] => Web自学视频教程 [3] => IOS自学视频教程 )
echo "<br>";
$str_arr2 = implode("*",$str_arr);
echo $str_arr2;
//php自学视频教程*java自学视频教程*Web自学视频教程*IOS自学视频教程
?>
print_r() --显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。
htmlentities() --将所有的字符都转换成HTML字符串
count() --统计数组元素个数函数
array_push() --添加数组元素函数
eg:
array_push($array,"'数组4' => array('10','11','12')"); //这添加的是一个二维数组的元素
array_pop() -- 获取数组最后一个元素,原数组的长度减一,若为空(或者不是数组),返回null
eg:
$last_array = array_pop($array);
echo $last_array;
array_unique() --删除重复元素函数,ps:使用unset()函数可以删除数组中的某个元素,如unset($array[1]);
eg:
<?php
header("Content-type: text/html; charset=utf-8");
$array = array('柯文鑫','大花','小花','笑话','校花');
array_push($array,'大花','小花');
print_r($array);
echo "<br><br>";
$array = array_unique($array);
print_r($array);
// Array ( [0] => 柯文鑫 [1] => 大花 [2] => 小花 [3] => 笑话 [4] => 校花 [5] => 大花 [6] => 小花 )
// Array ( [0] => 柯文鑫 [1] => 大花 [2] => 小花 [3] => 笑话 [4] => 校花 )
?>
array_search() --获取指定元素的键名
eg:
<?php
header("Content-type: text/html; charset=utf-8");
$array = array('柯文鑫','大花','小花','笑话','校花');
$key_name = array_search('小花',$array);
echo $key_name; //
?>
php基础的一点注意事项的更多相关文章
- JavaScript一些基础技巧和注意事项,你了解这些吗?
总结了一些JavaScript在开发编码中的使用技巧,如有不对,欢迎指正. 一.JavaScript在HTML和XHTML的使用 使用<script>元素有两种方式:直接在页面中嵌入Jav ...
- 关于Oracle的一些基础知识以及注意事项
一.oracle基础 1.1 DDL(Data Definition Language) 数据定义语言 create drop,desc(注意,此操作只能在PL/SQL Developer的命令窗户执 ...
- Zend Studio下调试PHP的一点注意事项
Zend Studio默认php文件的存放路径是你配置的服务器的路径,比如你配置的服务器是localhost,那么,你在zend下建立的文件均是相对于localhost而言的,比如你新建一个php工程 ...
- 利用IDE编写C语言程序的一点注意事项
前言:我是喜欢编程的一只菜鸟,在自学过程中,对遇到的一些问题和困惑,有时虽有一点体会感悟,但时间一长就会淡忘,很不利于知识的积累.因此,想通过博客园这个平台,一来记录自己的学习体会,二来便于向众多高手 ...
- css系列教程--简介及基础语法和注意事项
css简介:css指的是层叠样式表,cascading style sheets.用来定义html中的dom节点如何展示在页面中的问题.解决了内容与表现形式的分离问题.常见的样式表有外部链接样式表和内 ...
- sleep()和wait()的区别及wait方法的一点注意事项
一.查看API sleep是Thread类的方法,导致此线程暂停执行指定时间,给其他线程执行机会,但是依然保持着监控状态,过了指定时间会自动恢复,调用sleep方法不会释放锁对象. 当调用sleep方 ...
- 【基础】httpclient注意事项
一.HttpClient有默认的执行器RetryExec,其默认的重试策略是DefaultHttpRequestRetryHandler. RetryExec在执行http请求的时候使用的是底层的基础 ...
- vue基础中的注意事项,以及一些学习心得
vue中你不知道的东西.以及注意事项 v-html 使用 v-html的时候该指令中的值会覆盖绑定标签中原有的值,且使用v-html的时候不要将他设置为给用户提供内容的地方,因为v-html很容易被X ...
- 针对elementUI 中InfiniteScroll按需引入的一点注意事项
大家为了节省空间,常常进行按需引入来节省空间,这里我给大家来介绍一下element中按需引入无限滚动指令注意的事项. 针对前面element 按需引入的一些配置这里就不再详细介绍了. 那么这里讲的是在 ...
随机推荐
- Linux教程:Bash技巧,让chmod只修改某个目录下文件夹或者文件的权限
用Linux的人都知道chmod -R 可以修改一个文件夹下的所有文件和文件夹的权限,但是这也存在着一个很大的弊端,那就是修改的是所有的文件和文件夹的权限,如果我只想修改文件或文件夹的权限该怎么办呢? ...
- kaggle数据挖掘竞赛初步--Titanic<原始数据分析&缺失值处理>
Titanic是kaggle上的一道just for fun的题,没有奖金,但是数据整洁,拿来练手最好不过啦. 这道题给的数据是泰坦尼克号上的乘客的信息,预测乘客是否幸存.这是个二元分类的机器学习问题 ...
- Java项目:学生成绩管理系统(一)
学生成绩管理系统(一) 项目名称:学生成绩管理系统 项目需求分析(Need 需求): (1)该系统的用户分为教师和学生.教师的功能有:管理某一学生或课程的信息以及成绩,包括增.删.查.报表打印等:学生 ...
- HashTree(哈希树) ——和trie类似,只是将字符换成了质数,sphinx用到了???
摘自:http://blog.csdn.net/yang_yulei/article/details/46337405 哈希树的理论基础 [质数分辨定理] 简单地说就是:n个不同的质数可以" ...
- 微信支付之扫码支付开发:我遇到的坑及解决办法(附:Ecshop 微信支付插件)
前段时间帮一个朋友的基于ecshop开发的商城加入微信扫描支付功能,本以为是很简单的事儿——下载官方sdk或开发帮助文档,按着里面的做就ok了,谁知折腾了两三天的时间才算搞定,中间也带着疑问在网上找了 ...
- C#中获取当前时间:System.DateTime.Now.ToString()用法
//2008年4月24日 System.DateTime.Now.ToString("D"); //2008-4-24 System.DateTime.Now.ToString(& ...
- 数据加密标准——DES
DES算法和DESede算法统称DES系列算法.DES算法是对称加密算法领域中的典型算法,为后续对称加密算法的发展奠定了坚实的基础.但是DES算法密钥偏短,仅有56位,迭代次数偏少,受到诸如查分密码分 ...
- Highcharts 在低版本 IE 上使用注意事项及个人总结
很多人经常遇到图表在主流浏览器上运行正常,在低版本IE(包括IE6.IE7.IE8等)下运行出错(图表显示不出来或显示不正常)的情况,这不是兼容性问题,而是 IE 浏览器自身的一些限制,我们只需要注意 ...
- IOS开发之画图形
1 画线 2 画线第二个方法 相对方法1简洁 3 矩形 4 圆 5 弧线 6画文字(略) 7 画图片(略)
- spark发行版笔记11
本期概览: ReceiverTracker架构设计 消息循环系统 ReceiverTracker具体的实现 Spark Streaming作为Spark Core基础 架构之上的一个应用程序,其中的R ...