这是自己在cnblog上写的博客。原文:http://www.cnblogs.com/mr-Lai/p/php_beginner.html
自己在学习PHP知识,然后又很多的知识点有待加强,故开此博客分享经验!
其中标有“?”的地方是本人不清楚的地方,还请大家积极帮助博主,被回答的问题将会用“!” 标出,(如果是搜索的话有可能是英文的?!,也有可能是中文的?!哦)博主也会尽自己所能回答大家的问题!!
static关键字在类中是,描述一个成员是静态的,static能够限制外部的访问,因为static后的成员是属于类的,是不属于任何对象实例,其他类是无法访问的,只对类的实例共享,能一定程序对该成员尽心保护。类的静态变量,非常类似全局变量,能够被所有类的实例共享,类的静态方法也是一样的,类似于全局函数。另外说明的是,static的成员,必须使用self来访问,使用this会出错。
PHP String 函数
PHP:指示支持该函数的最早的 PHP 版本。
函数 | 描述 | PHP |
---|---|---|
addcslashes() | 在指定的字符前添加反斜杠。 | 4 |
addslashes() | 在指定的预定义字符前添加反斜杠。 | 3 |
bin2hex() | 把 ASCII 字符的字符串转换为十六进制值。 | 3 |
chop() | rtrim() 的别名。 | 3 |
chr() | 从指定的 ASCII 值返回字符。 | 3 |
chunk_split() | 把字符串分割为一连串更小的部分。 | 3 |
convert_cyr_string() | 把字符由一种 Cyrillic 字符转换成另一种。 | 3 |
convert_uudecode() | 对 uuencode 编码的字符串进行解码。 | 5 |
convert_uuencode() | 使用 uuencode 算法对字符串进行编码。 | 5 |
count_chars() | 返回字符串所用字符的信息。 | 4 |
crc32() | 计算一个字符串的 32-bit CRC。 | 4 |
crypt() | 单向的字符串加密法 (hashing)。 | 3 |
echo() | 输出字符串。 | 3 |
explode() | 把字符串打散为数组。 | 3 |
fprintf() | 把格式化的字符串写到指定的输出流。 | 5 |
get_html_translation_table() | 返回翻译表。 | 4 |
hebrev() | 把希伯来文本从右至左的流转换为左至右的流。 | 3 |
hebrevc() | 同上,同时把(\n) 转为 <br />。 | 3 |
html_entity_decode() | 把 HTML 实体转换为字符。 | 4 |
htmlentities() | 把字符转换为 HTML 实体。 | 3 |
htmlspecialchars_decode() | 把一些预定义的 HTML 实体转换为字符。 | 5 |
htmlspecialchars() | 把一些预定义的字符转换为 HTML 实体。 | 3 |
implode() | 把数组元素组合为一个字符串。 | 3 |
join() | implode() 的别名。 | 3 |
levenshtein() | 返回两个字符串之间的 Levenshtein 距离。 | 3 |
localeconv() | 返回包含本地数字及货币信息格式的数组。 | 4 |
ltrim() | 从字符串左侧删除空格或其他预定义字符。 | 3 |
md5() | 计算字符串的 MD5 散列。 | 3 |
md5_file() | 计算文件的 MD5 散列。 | 4 |
metaphone() | 计算字符串的 metaphone 键。 | 4 |
money_format() | 把字符串格式化为货币字符串。 | 4 |
nl_langinfo() | 返回指定的本地信息。 | 4 |
nl2br() | 在字符串中的每个新行之前插入 HTML 换行符。 | 3 |
number_format() | 通过千位分组来格式化数字。 | 3 |
ord() | 返回字符串第一个字符的 ASCII 值。 | 3 |
parse_str() | 把查询字符串解析到变量中。 | 3 |
print() | 输出一个或多个字符串。 | 3 |
printf() | 输出格式化的字符串。 | 3 |
quoted_printable_decode() | 解码 quoted-printable 字符串。 | 3 |
quotemeta() | 在字符串中某些预定义的字符前添加反斜杠。 | 3 |
rtrim() | 从字符串的末端开始删除空白字符或其他预定义字符。 | 3 |
setlocale() | 设置地区信息(地域信息)。 | 3 |
sha1() | 计算字符串的 SHA-1 散列。 | 4 |
sha1_file() | 计算文件的 SHA-1 散列。 | 4 |
similar_text() | 计算两个字符串的匹配字符的数目。 | 3 |
soundex() | 计算字符串的 soundex 键。 | 3 |
sprintf() | 把格式化的字符串写写入一个变量中。 | 3 |
sscanf() | 根据指定的格式解析来自一个字符串的输入。 | 4 |
str_ireplace() | 替换字符串中的一些字符。(对大小写不敏感) | 5 |
str_pad() | 把字符串填充为新的长度。 | 4 |
str_repeat() | 把字符串重复指定的次数。 | 4 |
str_replace() | 替换字符串中的一些字符。(对大小写敏感) | 3 |
str_rot13() | 对字符串执行 ROT13 编码。 | 4 |
str_shuffle() | 随机地打乱字符串中的所有字符。 | 4 |
str_split() | 把字符串分割到数组中。 | 5 |
str_word_count() | 计算字符串中的单词数。 | 4 |
strcasecmp() | 比较两个字符串。(对大小写不敏感) | 3 |
strchr() | 搜索字符串在另一字符串中的第一次出现。strstr() 的别名 | 3 |
strcmp() | 比较两个字符串。(对大小写敏感) | 3 |
strcoll() | 比较两个字符串(根据本地设置)。 | 4 |
strcspn() | 返回在找到任何指定的字符之前,在字符串查找的字符数。 | 3 |
strip_tags() | 剥去 HTML、XML 以及 PHP 的标签。 | 3 |
stripcslashes() | 删除由 addcslashes() 函数添加的反斜杠。 | 4 |
stripslashes() | 删除由 addslashes() 函数添加的反斜杠。 | 3 |
stripos() | 返回字符串在另一字符串中第一次出现的位置(大小写不敏感) | 5 |
stristr() | 查找字符串在另一字符串中第一次出现的位置(大小写不敏感) | 3 |
strlen() | 返回字符串的长度。 | 3 |
strnatcasecmp() | 使用一种“自然”算法来比较两个字符串(对大小写不敏感) | 4 |
strnatcmp() | 使用一种“自然”算法来比较两个字符串(对大小写敏感) | 4 |
strncasecmp() | 前 n 个字符的字符串比较(对大小写不敏感)。 | 4 |
strncmp() | 前 n 个字符的字符串比较(对大小写敏感)。 | 4 |
strpbrk() | 在字符串中搜索指定字符中的任意一个。 | 5 |
strpos() | 返回字符串在另一字符串中首次出现的位置(对大小写敏感) | 3 |
strrchr() | 查找字符串在另一个字符串中最后一次出现的位置。 | 3 |
strrev() | 反转字符串。 | 3 |
strripos() | 查找字符串在另一字符串中最后出现的位置(对大小写不敏感) | 5 |
strrpos() | 查找字符串在另一字符串中最后出现的位置(对大小写敏感) | 3 |
strspn() | 返回在字符串中包含的特定字符的数目。 | 3 |
strstr() | 搜索字符串在另一字符串中的首次出现(对大小写敏感) | 3 |
strtok() | 把字符串分割为更小的字符串。 | 3 |
strtolower() | 把字符串转换为小写。 | 3 |
strtoupper() | 把字符串转换为大写。 | 3 |
strtr() | 转换字符串中特定的字符。 | 3 |
substr() | 返回字符串的一部分。 | 3 |
substr_compare() | 从指定的开始长度比较两个字符串。 | 5 |
substr_count() | 计算子串在字符串中出现的次数。 | 4 |
substr_replace() | 把字符串的一部分替换为另一个字符串。 | 4 |
trim() | 从字符串的两端删除空白字符和其他预定义字符。 | 3 |
ucfirst() | 把字符串中的首字符转换为大写。 | 3 |
ucwords() | 把字符串中每个单词的首字符转换为大写。 | 3 |
vfprintf() | 把格式化的字符串写到指定的输出流。 | 5 |
vprintf() | 输出格式化的字符串。 | 4 |
vsprintf() | 把格式化字符串写入变量中。 | 4 |
wordwrap() | 按照指定长度对字符串进行折行处理。 | 4 |
PHP String 常量
PHP:指示支持该常量的最早的 PHP 版本。
常量 | 描述 | PHP |
---|---|---|
CRYPT_SALT_LENGTH | 包含系统默认加密方法的长度。对于标准 DES 加密,长度是 2。 | |
CRYPT_STD_DES | 如果支持 2 字符 salt 的 DES 加密,则设置为 1,否则为 0。 | |
CRYPT_EXT_DES | 如果支持 9 字符 salt 的 DES 加密,则设置为 1,否则为 0。 | |
CRYPT_MD5 | 如果支持以$1$开始的 12 字符 salt 的MD5加密,则设置为1,否则为0。 | |
CRYPT_BLOWFISH | 如果支持以 $2$ 或 $2a$ 开始的 16 字符 salt 的 Blowfish 加密,则设置为 1,否则为 0。 | |
HTML_SPECIALCHARS | ||
HTML_ENTITIES | ||
ENT_COMPAT | ||
ENT_QUOTES | ||
ENT_NOQUOTES | ||
CHAR_MAX | ||
LC_CTYPE | ||
LC_NUMERIC | ||
LC_TIME | ||
LC_COLLATE | ||
LC_MONETARY | ||
LC_ALL | ||
LC_MESSAGES | ||
STR_PAD_LEFT | ||
STR_PAD_RIGHT | ||
STR_PAD_BOTH |
$a =& $b
is
not
the same as
$a = (&$b)
.
&
operator means make a reference out of something, the
=
operator does assign-by-
value, so the expression
$a = (&$b)
means make a temporary reference to
$b
, then assign the value of that temporary to
$a
, which
is not assign-by-reference.
<?php
class Foo {
private static $used ;
private $id ;
public function __construct () {
$id = $used ++;
}
public function __clone () {
$id = $used ++;
}
}
$a = new Foo ; // $a is a pointer pointing to Foo object 0
$b = $a ; // $b is a pointer pointing to Foo object 0, however, $b is a copy of $a
$c = & $a ; // $c and $a are now references of a pointer pointing to Foo object 0
$a = new Foo ; // $a and $c are now references of a pointer pointing to Foo object 1, $b is still a pointer pointing to Foo object 0
unset( $a ); // A reference with reference count 1 is automatically converted back to a value. Now $c is a pointer to Foo object 1
$a = & $b ; // $a and $b are now references of a pointer pointing to Foo object 0
$a = NULL ; // $a and $b now become a reference to NULL. Foo object 0 can be garbage collected now
unset( $b ); // $b no longer exists and $a is now NULL
$a = clone $c ; // $a is now a pointer to Foo object 2, $c remains a pointer to Foo object 1
unset( $c ); // Foo object 1 can be garbage collected now.
$c = $a ; // $c and $a are pointers pointing to Foo object 2
unset( $a ); // Foo object 2 is still pointed by $c
$a = & $c ; // Foo object 2 has 1 pointers pointing to it only, that pointer has 2 references: $a and $c;
const ABC = TRUE ;
if( ABC ) {
$a = NULL ; // Foo object 2 can be garbage collected now because $a and $c are now a reference to the same NULL value
} else {
unset( $a ); // Foo object 2 is still pointed to $c
}
当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值 都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等。
reset ( $arr );
while (list(, $value) = each($arr )) {
echo "Value: $value <br>\n" ;
}
foreach ( $arr as $value ) {
echo "Value: $value <br />\n" ;
}
?>
常量前面没有美元符号($);
常量只能用 define() 函数定义,而不能通过赋值语句;
常量可以不用理会变量的作用域而在任何地方定义和访问;
常量一旦定义就不能被重新定义或者取消定义;
常量的值只能是标量。
Example #1 定义常量
<?php
-
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // 输出 "Constant" 并发出一个提示级别错误信息
?>Example #2 使用关键字 const 定义常量
<?php
// 以下代码在 PHP 5.3.0 后可以正常工作
const CONSTANT = 'Hello World';
echo CONSTANT;
?>Note:
和使用 define() 来定义常量相反的是,使用 const 关键字定义常量必须处于最顶端的作用区域,因为用此方法是在编译时定义的。这就意味着不能在函数内,循环内以及 if 语句之内用 const 来定义常量。
转载于:https://blog.51cto.com/8268391/1331410