在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、isset()函数 、array_key_exists()函数、empty()函数 <?php $a = array ('test' => 1, 'hello' => NULL); var_dump( isset ($a['test') ); // TRUE var_dump( isset ($a['foo') ); // FALSE var_dump( isset ($a['hello') ); // FALSE // 'hello' 等于 NULL,所以被认为是未赋值的。 // 如果想检测 NULL 键值,可以试试下边的方法。 var_dump( array_key_exists('hello', $a) ); // TRUE ?>
isset() 函数 若变量不存在则返回 FALSE
当 ""、0、"0"、NULL、、FALSE、array() 或者 变量不存在时 empty($tmp) 均返回 true
array_key_exists() 函数比较宽泛,当值为 null “” “0” 时均返回true,只要你在array中设置了key
综上: array_key_exists() 函数要求最低, isset()函数次之 empty()函数检测最严格
静态变量+静态方法:
<?php class Test{ const STATUS_NORMAL = 0; public static $count = 1; public static function echoConst(){ //函数内部调用常量 echo self::STATUS_NORMAL; } public static function strPrint(){ echo 'this is strPrint static function \n\n'; } public static function addCount(){函数内部调用函数 //函数内部调用类变量 self::$count += 1; } public function staticFuncInvoke(){
php变量及方法调用总结
<?php $global_book = "编程测试书籍456"; function test() { echo "test\n\n"; } class MyTest { protected $book = "编程测试书籍"; function __construct() { //调用全局方法 test(); //调用全局变量(两种方法) $this->print_ok($GLOBALS['global_book']); global $global_book; $this->print_ok($global_book); //调用局部变量(仅此一种方法) $temp = "good"; $this->print_ok($temp); //调用类方法(仅此一种方法) $this->print_ok($this->get_name()); //调用类变量(仅此一种方法) $this->print_ok($this->book); } private function print_ok($str) { echo "\n"; echo $str; echo "\n\n"; } private function get_name() { return "ivar1001"; } } new MyTest(); ?>
一定注意: $this 不是 this
bug一 <?php $son_search_option = array(); //正确的添加 $search_option[] = " accounts_receivable_id in $id_set"; //另一种错误的添加 $search_option[] = array( accounts_receivable_id in $id_set" ); ?>
bug二 <?php $result = strpos("Hello world!","world"); if($result == false) echo "cuowu"; else echo "zhegnque"; ?> strpos() 函数用于检索字符串内指定的字符或文本。 如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则将返回 FALSE。
<?php echo str_replace("world","Shanghai","Hello world!"); ?> str_replace("old string", "new string", "parent string"); 将 parent string 中 的 old string 全部替换为 new string (大小写严格), str_replace("old string", "new string", "parent string"); 将 parent string 中 的 old string 全部替换为 new string (不区分大小写)
bug三 单引号字符串中的变量是无效的 <?php $name = "good"; $str = ‘$name dook’; echo $str; ?>
上述代码会输出 $name dook 当换成双引号时,正确输出 good dook
bug四 单引号 中的转义字符是无效的
<?php $name = "good"; echo '$name \n\n'; $str = "$name dook"; echo $str; ?>
上述代码会输出 $name \n\ngood dook 当把单引号换成双引号时,正常输出换行
json格式转化 通过json_decode() json_encode() 函数可以进行数组与json格式字符串之间的转换 <?php $fruits = array( "apple" => 5, "orange" => 6, "ice" => 3 ); $jsonStr = json_encode($fruits); $obj = json_decode($jsonStr, true); var_dump($obj); ?> 其中: json_encode 将$fruits 数组转换成了相应的json字符串(可供返回) json_decode($jsonStr, true)将json字符串转换成了关联数组. json_decode($jsonStr) 会将 json字符串转换成 对象
trim rtrim ltrim
<?php $str = "Hello WorldWorld"; echo $str . "\n"; echo rtrim($str,"World!"); ?>
上述代码的输出结果为 : Hello World World 故: rtrim 去掉字符串右侧的一个World 或者多个连续的World ltirm 去掉字符串左侧的多个连续str(多个str之间不能有空格) trim 去掉字符串两侧的多个连续空白符(包括空格)
条件判断 <?php $a = ""; if($a) echo "good"; else echo "wrong"; ?> 当 $a = "" false 0 时 均判断为 false 当 $a = " "时,true ,非0 时均判断为true
函数 doubleval() floatval()
intval() (int)
获取毫秒时间
<?php list($ss, $s) = explode(" ", microtime()); $time = $s + $ss; echo $time; ?> 其中 $ss 为带小数点的秒数,且 $ss < 1; $s 为从1970-01-01 00:00:00开始到现在的秒数 该函数返回数组值的唯一构成的数组,如果不同的键有相同的值,则舍弃后一个键 array_merge该函数根据键将多个数组合并,如果有相同的键,则后面的value覆盖前面的value array_key_exists($key, $array) 该函数判断$array 中是否有 $key 这个键 in_array($value, $array) 该函数判断$array 中是否有 $value 这个值 substr($str, $start, $count) 1、该函数截取$str 字符串(下标从 0 开始) 从 $start 开始的 $count 个字符; 2、若 $count < 0 ,则返回 从 $start 位置开始的所有字符 除去 倒数的 |$count| 个字符 <?php $a = "temp abd sdjfksdf"; echo strlen(substr($a, 0, 25)); echo "\n"; echo substr($a, 5, 2); echo "\n"; echo substr($a, 5, -4); ?> 输出结果如下所示:
php 中竟然允许函数中存在静态变量。。。 <?php class Test { function get_data() { static $i = 1; echo $i++; } } $test = new Test(); for($i = 0; $i <3; $i++) { $test->get_data(); } ?> 上述代码的输出结果为:“123” 备注:java中不允许存在静态的局部变量,php真是太神奇了
null 与 unset的区别: 先上代码: class Test{} $a = new Test(); $b = $a; $c = &$a; $a = null; 或者 unset($a); var_dump($a);echo '<br>'; var_dump($b);echo '<br>'; var_dump($c);echo '<br>'; $a = null 输出为: NULL object(Test)#1 (0) {} NULL unset($a) 输出: NULL object(Test)#1 (0) {] object(Test)#1 (0) {]
当$a 与 $c 指向同一块内存地址,当$a = null时,把这块内存的内容清空了;当unset($a) 时,只是删掉了这个变量$a,但是$a 指向的内存内容未改变,通过$c可以访问这块内存
|
2022-08-18
2022-07-08
2022-08-17
2022-11-06
2022-08-15
请发表评论