php变量存在
Ⅰ php中存在变量的字符串问题
首先,除非你的字符串非常复杂,否则那个快慢的差别是感觉不到的。要以你喜欢看、你觉得好看的方式来写。
其次:
1.$a = "{$b}cdef";和$a = $b . 'cdef';
后者快
2.echo "{$b}cdef";和echo $b, 'cdef';
后者快
Ⅱ PHP:静态变量只存在于函数作用域内
static 是让变量 不在函数结束以后 跟着一起结束
你要是想在函数外用 就用global关键字
Ⅲ php变量包含变量
在PHP中,变量是不用预先声明的。
比如你要设置一个变量名为 myfirst 的变量,不需要声明,可以直接使用 $myfirst 这个变量。
如果要赋值为 100 ,可以直接书写语句 : $myfirst=100;
另外,PHP中,数据类型也是不要求定义的。
Ⅳ php 刷新页面 全局变量还存在吗
首先你要搞清楚,什么是全局变量?什么是局部变量?
局部变量:
局部变量只是仅仅在函数和类中有效的变量(除非是全局化后的变量,类没有全局化)
全局变量:
在整个文档中(这一个PHP文件中)的普通变量,就是全局变量。但是全局变量和局部变量是分开的。也就是全局变量无法影响到函数和类中(除非global,全局化。类没有全局概念。)
全局变量和局部变量的共同是程序执行完成后自动销毁。
所以不存在。
----------
还有第三种变量,叫做“超全局变量”
意思在多个文档(php文件)中互相传递的
比如:$_POST $_GET $_COOKIES $_SESSION
都是超全局变量
他们在特定情况下刷新不会消失(比如COOKIES ,生成以后,只要不超过有效时间或者你清理了COOKIE以外,变量不会消失。)
Ⅳ php扩展在全局变量中不存在但是打印phpinfo却存在
说明:我本地装的php集成环境MAMP PRO
最近遇到一个比较奇怪的问题,在本地搭建了PHP运行环境,并且安装了相应的PHP扩展 并且在测试页面中通过打印phpinfo能看到所安装的扩展是正常的,但是php -m | grep swoole 没有显示swoole 已经配好了php环境变量
装好了php,php一些常用的扩展后就开始配置php系统环境变量,因为我用的mac book pro 所以配置命令如下
查看环境变量是否OK
以为一切OK的我想试试swoole的性能是否真有官网说的那么厉害于是就准备了一段测试脚本 https://wiki.swoole.com/wiki/page/326.html
测试脚本
终端执行
然后奇怪的是swoole的http服务并没有起来 ????
然后查看php错误日志 惊奇!
确定浏览器打印的phpinfo 是有swoole扩展的,而且终端的php跟界面的php是同一个版本的php 百思不解 然后我在终端
结果很意外 终端里面找不到swoole 扩展!!! 可是浏览器里打印有的啊 而且是同一个PHP版本??奇怪了
然后在终端执行 php -i 这个是在终端打印phpinfo
然后对比这个
终端打印phpinfo
浏览器打印phpinfo
是同一个PHP没错了 。。。
然后再对比php.ini引用路径
终端的:
浏览器的
终于找到原因了 两个地方引用的php.ini不一样 于是在终端引用的php.ini同样加上extension = swoole.so即可
Ⅵ PHP中如何检测一个值为null的变量是否存在
PHP 中判断变量是否为 null 可以使用 is_null() 或者 ($var === null) 来判断,至于变量是否存在,由于 null 值会干扰到 isset() 所以只能用捕捉异常来处理。代码如下:
try{
if($var===null){
return'变量的值为null';
}else{
return'变量的值不为null';
}
}catch(Exception$exception){
return'变量不存在';
}
Ⅶ php变量定义方法
PHP语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。以下是为大家分享的php变量定义方法,供大家参考借鉴,欢迎浏览!
1.定义常量define("CONSTANT", "Hello world.");
常量只能包含标量数据(boolean,integer,float 和 string)。
调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号,如:echo CONSTANT;
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
2.普通变量$a = "hello";
3.可变变量(使用两个美元符号($))
$$a = "world";
两个变量都被定义了:
$a 的内容是“hello”并且 $hello 的内容是“world”。
因此,可以表述为:
echo "$a ${$a}";或者 echo "$a $hello";它们都会输出:hello world
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
4.静态变量
在函数内部static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error)
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用
5.全局变量
在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用
global $obj;
注:对于变量的 static 和 global 定义是以 应用 的方式实现的
6.给变量赋值:传地址赋值(简单引用):
$bar = &$foo; //加&符号到将要赋值的变量前
改动新的变量将影响到原始变量,这种赋值操作更加快速
注意:只有命名变量才可以传地址赋值
注意:如果
$bar = &$a;
$bar = &$foo;
改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)
7.PHP 超全局变量$GLOBALS : 包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的 名称。从 PHP 3 开始存在 $GLOBALS 数组。
$_SERVER : 变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组 $HTTP_SERVER_VARS 数组(依然有效,但反对使用)。
$_GET : 经由 HTTP GET 方法提交至脚本的变量。
$_POST : 经由 HTTP POST 方法提交至脚本的变量。
$_COOKIE : 经由 HTTP Cookies 方法提交至脚本的变量。
$_FILES : 经由 HTTP POST 文件上传而提交至脚本的变量。
文件上传表单中要有 enctype="multipart/form-data"
$_ENV : 执行环境提交至脚本的变量。
$_REQUEST :经由 GET,POST 和 COOKIE 机制提交至脚本的.变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的 variables_order 配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见 import_request_variables()。
注意: 自 PHP 4.3.0 起,$_FILES 中的文件信息不再存在于 $_REQUEST 中。
$_SESSION :当前注册给脚本会话的变量。
如何禁用phpinfo():
php.ini中
disable_functions = phpinfo()
重启web服务器。
php中的常量
常量只能用define(常量名,常量值);
常量只能包含标量数据(boolean,integer,float 和 string)。
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $ 符号。如果常量名是动态的,也可以用函数
constant() 来读取常量的值。用 get_defined_constants() 可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar] 是错误的(除非事先用 define() 将 bar 定义为一个常量)。如果只想检查是否定义了某常量,用 defined() 函数。
常量和变量不同:
* 常量前面没有美元符号($);
* 常量只能用 define() 函数定义,而不能通过赋值语句;
* 常量可以不用理会变量范围的规则而在任何地方定义和访问;
* 常量一旦定义就不能被重新定义或者取消定义;
* 常量的值只能是标量。
定义常量
<?PHP
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>
Ⅷ php 如何让一个变量长期存在
1、PHP程序结束了,变量当然就会销毁。如果你要变量活下去,那就得给他一个地方活着。
数据库是一个地方,memcache/redis之类的内存是一个地方,硬盘是一个地方,第三方存储API也是一个地方。
2、因为PHP木有daemon,PHP变量的生命周期是页面级别的,页面结束了,变量也就结束了,保存在redis或者memcached。
