php全局变量和正则表达式错误解决方案
来源:互联网 发布:背单词软件排行 编辑:程序博客网 时间:2024/05/01 23:56
在java,c,c++里面都有严格的变量作用域 ,php则没有明确的(不准确)作用域,比如一个方法外面定义的变量-值 在方法里面是引用不了的
解决这个的方法 可以用超全局变量 request session post 之类的magic函数或者global,重点是global!一个普通的php文件里面 如下写法是没有问题的:
$a = 1;$b = 2;function Sum(){ global $a, $b; echo $a." ",$b." "; $b = $a + $b;}Sum();echo $b;//3return $b;
但是在一个php封装的类里面是不行的
class MyClass {private $str = "Hello, World"; function my_print() { global $str; print "str:".$str; }}
只有这样:
class MyClass { function my_print() { global $str; print "str:".$str; }} $str = "Hello, World";$myclass = new MyClass();//$myclass->my_print();//Hello, World网上查了很久 发现可以使由于作用域问题导致 global无效
在一些include的时候会导致作用域变化
如果是在同一个类里面需要用的全局变量 可以尝试下面这种方法
<?phpglobal $operator_stack;global $operation_stack;$operator_stack=array();$operation_stack=array();class index_expressionTrans{function test1( ){//array_push($operator_stack,1); global $operator_stack;array_push($operator_stack,1);}function test2( ){ global $operator_stack;array_push($operator_stack,2);}}$classtest=new index_expressionTrans();$classtest->test1();$classtest->test2();print_r($operator_stack);//Array ( [0] => 1 [1] => 2 ) exit;下面记录用php
preg_match
匹配正则表达式老是出错的问题明明java已经调试好的正则表达式在这个方法里面就不能用了
解决方案: 在你的正则表达式开头和结尾加上“/ /”;
0 0
- php全局变量和正则表达式错误解决方案
- nginx -- 正则表达式和全局变量
- PHP和正则表达式
- PHP和正则表达式
- PHP和正则表达式 101
- 字符串和正则表达式-php
- 正则表达式*和?的一个错误认识
- PHP和正则表达式教程集合
- PHP字符串函数和正则表达式
- PHP学习:字符串操作和正则表达式
- PHP学习:字符串操作和正则表达式
- PHP--正则表达式和样式匹配--小记
- php中的字符串和正则表达式
- PHP正则表达式基础和应用
- php 正则表达式用法和常用案例
- (PHP)正则表达式-preg_replace()和preg_filter()
- PHP字符串操作和正则表达式
- PHP正则表达式笔记和实例
- 重新加载 vimrc
- redis集群简易实验
- 任意进制转换算法
- 学术休假期 项目5-读懂共同体
- 快速排序算法
- php全局变量和正则表达式错误解决方案
- 希尔排序算法
- 成为一个优秀的软件开发工程师应该具备的能力
- 选择排序
- 分拆数组技巧应用
- Rotate Array--Leetcode(Java)
- 求三角形面积
- String创建对象
- uva_537