Category Archive: PHP

十一月 9th, 2017

出现这样的错误提示:

后台登录 点击系统管理 未安装的应用1 安装应用模块 然后安装 报错 PHP script ‘E:\Inetpub\vhosts\foxzm.com\wx.foxzm.com\addons\hh_hello\inc\qdyma\install.php’ is protected by SourceGuardian and requires a SourceGuardian loader ‘ixed.5.6.win’ to be installed. 1) Download the required loader ‘ixed.5.6.win’ from the SourceGuardian site: http://www.sourceguardian.com/loaders/download.php?php_v=5.6.24&php_ts=0&php_is=4&os_s=Windows+NT&os_r=6.1&os_m=i586 2) Install the loader to D:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP56\ext 3) Edit D:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP56\php.ini and add ‘extension=ixed.5.6.win’ directive

 

然后在网上百度了一些,找到了解决的办法

 

应该是这个程序是需要这个组件支持,所以我们就根据提示步骤下载组件,然后丢到对应的目录中。最后在php.ini文件添加引用。

extension=ixed.5.6.lin
extension=/www/wdlinux/apache_php-5.5.38/lib/php/extensions/no-debug-non-zts-20121212/ixed.5.6.lin

十月 27th, 2017
PHP7于2015年11月正式发布,本次更新可谓是PHP的重要里程碑,它将带来显著的性能改进和新特性,并对之前版本的一些特性进行改进。本文小编将和大家一起来了解探讨PHP7中的新特性。
1. 标量类型声明
我们知道PHP是一种弱类型的编程语言,因此没有提供任何方法来指定输入参数和返回值的类型,PHP7突破了这种现状,增加了对标量类型(int,float,string,bool)的声明支持,增加declare(strict_types=1)指令声明是否严格类型校验,我们来看一段代码:
(strict_types=) {
$x + $y;
}  add(, );
有效的类型有:class/interface name, self, array, callable, bool, float, int and string.
2. ?? ——NULL 合并运算符
PHP7中添加了NULL合并运算符,不要小看这个“??”,有了它我们就能很方便的获取一个参数,并能在其为空的情况下提供一个默认值。如何??运算符左侧值存在并且不为NULL,则返回左侧,否则将返回其右侧值。我们还是通过下面一段代码来体验一下??运算符的强大吧。
<?php
// 获取user参数的值(如果为空,则用’nobody’)
// PHP5中我们这样来实现:
$username = isset($_GET[‘user’]) ? $_GET[‘user’] : ‘nobody’;
// PHP7中,使用??运算符更便捷:
$username = $_GET[‘user’] ?? ‘nobody’;
?>
3. 匿名类
匿名类顾名思义没有类名称,其声明和实例化是同时的,PHP7 支持通过 new class 来实例化一个匿名类,可以用来替代一些”用后即焚”的完整类定义。
echo ( {
{
;
}
})->myMethod();
4. 更多 Error 错误可以进行异常处理
PHP7中更多的Error变为可捕获的Exception返回给开发者,如果不进行捕获则为Error,如果捕获就变为一个可在程序内处理的Exception。默认情况下,Error会直接导致程序中断,而PHP7则通过try / catch程序块捕获并且处理,让程序继续执行下去,为程序员提供更灵活的选择。
代码示例:
nonExistFunction($arg);
这时上面的代码会提示错误“Fatal error: Call to a member function method() on a non-object ”,并且这个致命错误会停止后面代码的继续执行。
所以如果你想继续执行代码,可以通过异常处理的方式解决:
{
nonExistFunction($arg);  }  (EngineException $e ) {
;
}
5. 结合比较运算符(<=> )
这个不多解释,我们直接看示例代码,通过代码你可以很容易了解该运算符的作用。
{
($a < $b) ?  : (($a > $b) ?  : )
}  {
$a <=> $b;
}
6. 定义数组常量
过去我们在用define()定义常量时,数据类型只支持标量,但在PHP7中,支持定义数组类型的常量。
define(‘MYCONSTANT’, array(‘a’,’b’,’c’))
PHP7新增的特性还有很多,今天我们先介绍到这,后续会持续更新,同时也欢迎广大PHPer补充,我们共同交流,共同学习,共同进步。

 

TAGS:
十月 27th, 2017
bc是Binary Calculator的缩写。bc*函数的参数都是操作数加上一个可选的 [int scale],比如string bcadd(string $left_operand, string $right_operand[, int $scale]),如果scale没有提供,就用bcscale的缺省值。这里大数直接用一个由0-9组成的string表示,计算结果返回的也是一个 string。
bcadd — 将两个高精度数字相加
bccomp — 比较两个高精度数字,返回-1, 0, 1
bcdiv — 将两个高精度数字相除
bcmod — 求高精度数字余数
bcmul — 将两个高精度数字相乘
bcpow — 求高精度数字乘方
bcpowmod — 求高精度数字乘方求模,数论里非常常用
bcscale — 配置默认小数点位数,相当于就是Linux bc中的”scale=”
bcsqrt — 求高精度数字平方根
bcsub — 将两个高精度数字相减

首先看一段代码:

<?php
$a = 0.1;
$b = 0.7;
var_dump(($a + $b) == 0.8);

打印出来的值居然为 boolean false
这是为啥?PHP手册对于浮点数有以下警告信息:
Warning
浮点数精度
显然简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999…。
这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 1/3 变成了 0.3333333. . .。
所以永远不要相信浮点数结果精确到了最后一位,也永远不要比较两个浮点数是否相等。如果确实需要更高的精度,应该使用任意精度数学函数或者 gmp 函数
那么上面的算式我们应该改写为

<?php
$a = 0.1;
$b = 0.7;
var_dump(bcadd($a,$b,2) == 0.8);

这样就能解决浮点数的计算问题了

另外,还可以使用round() 函数处理一下:

<?php
echo ceil( round((2.1/0.7),1) );

虽然 round() 函数是按照指定的精度进行四舍五入,但保留小数点后一位,对我们的取整结果是没影响的。

 

TAGS:
十月 27th, 2017

学习PHP之初,根本就没有意识到过有编码那回事儿,随着对中文的输出越来越多,遇到输出乱码的情况也就更加普遍了。最早我们怀疑是数据库编码的问题,于是在PHP代码中的解决的办法是:
mysql_query(“SET NAMES UTF8”);   

但这样做了后,网页显示的仍然是乱码,于是有修改网页头部信息:
header(‘Content-type:text/html;charset=UTF8’);

顺便还找到条其他命令,也不知道能起到什么作用,反正遇到乱码的时候就把它加进去,解决问题即可:
declare(encoding=’UTF-8′);

还有一种情况,是文件编码与输出编码冲突,例如PHP文件编码是ANSI(如果你用windows记事本创建的PHP文件,默认就是ANSI),虽然我也不知道ANSI具体是什么,但我们希望输出的是UTF-8,所以,还是乱码了,于是,又在浏览器显示编码中设置网页显示编码为UTF-8:


问题到此,基本能够解决显示乱码的现象了!

但是,我觉得不应该就此结束!因为我们以后还会遇到编码冲突的情况,有没有防患于未然的方案呢?

我大胆地思考这个问题,然后百度了一下“PHP转换字符串编码”,果然有对应的函数可以解决这个问题!

 

那就是:

mb_detect_encoding — 检测字符的编码,和mb_convert_encoding — 转换字符的编码,这两个函数。

 

关于这两个函数的用法,请各位自己去搜索吧,PHP手册里面也很详尽,我就不在此占用篇幅了。

 

另外还有个函数:iconv,它的效率比mb_convert_encoding 高,但功能没mb_convert_encoding 好,了解后你自己取舍吧!

 

但,经过本人研究了一两天,貌似这两个函数并没如我所愿地把字符串随意地转换成GBK,GB2312,UTF-8的编码,也许是我的“打开方式不对”?总之,方法找到了,只是用法还没掌握,也就是时间的问题而已啦。

TAGS:
十月 16th, 2017

主机客户反映说发现上传图片报错,文件已经上传100%但又跳出来“上传失败”,提示“缺少临时文件夹”。先前以为是图片目录权限或者网站后台问题,最后发现不是,是php的一个配置问题导致。

解决方法:

vim php.ini

找到upload_tmp_dir,改成如下:

upload_tmp_dir = /tmp

保存退出,重启php就ok。

八月 25th, 2017

PHP本身没有带有ionCube loader模块, 必须到ionCube网站下载。ionCube loader是免费的,但是Encoder的价格就比较昂贵(起价$199)。

下面要介绍如何在Linux下安装ionCube Loader。

1. 下载ionCube http://www.ioncube.com/loader_download.php, 通过这个链接可以找到对应的版本,我使用wget从命令行获取Linux64版本。
wget -c http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

2. 解压 tar -zxvf ioncube_loaders_lin_x86-64.tar.gz

3. 在解压后的文件夹了可以找到ioncube-loader-helper.php, 把它拷贝到网站的目录下,例如:
cp ioncube-loader-helper.php /var/www/html/

4. 然后在浏览器下打开ioncube-loader-helper.php,点击Server System Information链接,它会根据你的系统配置,告诉你应该使用那个ionCube-loader模块,并且告诉php.ini的路径。

5. 接下来把相关模块复制到/usr/local/(或者其他目录),根据第四步的提示在php.ini里加入一行。例如:
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so
注意:如果你的php.ini里没有zend_extension,你可以把这行加在任一位置,否则,把它加在第一个zend_extension语句前。

6. 保存php.ini,重启服务器。在我们的服务器上使用到的命令是:/etc/init.d/httpd restart

另外我还在ZendChina上看到一篇关于ZendGuard 与ionCube工具比较的文章,ZendGuard也是一款对PHP源码加密的工具,ZendGuard只能用于配置了ZendOptimizer的环境中,不能独立运行。据说使用的ZendOptimizer(PHP优化引擎)可以提高20~50%的源码执行速度,如果结合ZendGuard可以把速度提高至50%以上。我们公司的网站还没有使用PHP加密和PHP优化,有机会一定要试试。

不知PHP的加密是否违背开源的理念?
ionCube loader 类似 zend 的 php 加密 工具

昨天下了一款奥瑞文的在线考试系统,打开首页,提示:
“requires the ionCube PHP Loader ioncube_loader_win_5.2.dll to be installed by the site administrator”

这是缺少ionCube loader,即ionCube解密工具的原因。

ionCube Encoder可以把PHP源代码转换成ByteCode。进行加密授权处理后的PHP代码就不在开源了,必须使用ionCube loader才可以执行加密过的PHP代码。PHP本身没有带有ionCube loader模块, 必须到ionCube网站下载。ionCube loader是免费的,但是Encoder的价格就比较昂贵(起价$199)。

好在该考试系统里面集成了loader的文件包,免去我下载的麻烦。我办公的电脑不可以连互联网,现在打字这台是查资料的电脑。

打开后,确定存在Loader ioncube_loader_win_5.2.dll文件,

然后再php安装目录下,找到php-apache2handler.ini文件。搜索其zend_extension_ts

并在其后插入一段:zend_extension_ts=”e:\phpnow\php5.2\oes\ionCube\Loader ioncube_loader_win_5.2.dll”。

Loader ioncube_loader_win_5.2.dll文件的路径自己替换成你的。

重启apache,测试效果。

英文好的,也可以查看ioncube-loader-help.php文件自行安装配置

八月 6th, 2017

PHP里有非常丰富的内置函数,很多我们都用过,但仍有很多的函数我们大部分人都不熟悉,可它们却十分的有用。这篇文章里,我列举了一些鲜为人知但会让你眼睛一亮的PHP函数。

levenshtein()

你有没有经历过需要知道两个单词有多大的不同的时候,这个函数就是来帮你解决这个问题的。它能比较出两个字符串的不同程度。

用法:

<?php

$str1 = “carrot”;

$str2 = “carrrott”;

echo levenshtein($str1, $str2); //Outputs 2

?>

Source: http://php.net/manual/en/function.levenshtein.php

get_defined_vars()

这是一个在debug调试时非常有用的函数。这个函数返回一个多维数组,里面包含了所有定义过的变量。

用法:

<?php

print_r(get_defined_vars());

?>

Source: http://php.net/manual/en/function.get-defined-vars.php

php_check_syntax()

这个函数非常的有用,可以用来检查PHP的语法是否正确。出于技术上的原因,从PHP 5.05开始,这个函数被删除了。

用法:

<?php

$error_message = “”;

$filename = “./php_script.php”;

if(!php_check_syntax($filename, &$error_message)) {

echo “Errors were found in the file $filename: $error_message”;

} else {

echo “The file $filename contained no syntax errors”;

}

?>

Source: http://www.php.net/manual/en/function.php-check-syntax.php

ignore_user_abort()

这个函数用来拒绝浏览器端用户终止执行脚本的请求。正常情况下客户端的退出会导致服务器端脚本停止运行。

用法:

<?php

ignore_user_abort();

?>

Source: http://www.php.net/manual/en/function.ignore-user-abort.php

highlight_string()

当你想把PHP代码显示到页面上时,highlight_string()函数就会显得非常有用。这个函数会把你提供的PHP代码用内置的PHP语法突出显示定义的颜色高亮显示。这个函数有两个参数,第一个参数是一个字符串,表示这个字符串需要被突出显示。第二个参数如果设置成TRUE,这个函数就会把高亮后的代码当成返回值返回。

用法

<?php

highlight_string(‘ <?php phpinfo(); ?>’);

?>

Source: http://php.net/manual/en/function.highlight-string.php

highlight_file

这是一个非常有用的PHP函数,它能返回指定的PHP文件,并按照语法语义用高亮颜色突出显示文件内容。其中的突出显示的代码都是用HTML标记处理过的。

用法:

<?php

highlight_file(“php_script.php”);

?>

Source: http://www.php.net/manual/en/function.highlight-file.php

php_strip_whitespace

这个函数也跟前面的show_source()函数相似,但它会删除文件里的注释和空格符。

用法:

<?php

echo php_strip_whitespace(“php_script.php”);

?>

Source: http://www.php.net/manual/en/function.php-strip-whitespace.php

get_browser

这个函数会读取browscap.ini文件,返回浏览器兼容信息。

用法:

<?php

echo $_SERVER[‘HTTP_USER_AGENT’];

$browser = get_browser();

print_r($browser);

?>

Source: http://www.php.net/manual/en/function.get-browser.php

memory_get_usage(),memory_get_peak_usage(),getrusage()

这些函数用来获取内存和CPU使用情况,memory_get_usage()函数返回内存使用量,memory_get_peak_usage()函数返回内存使用峰值,getrusage()返回CUP使用情况,在调试PHP代码性能时,这些函数会给你提供一些有用信息。但有一点请注意,在这些函数中Window上无效。

用法:

<?php

echo “Initial: “.memory_get_usage().” bytes \n”;

echo “Peak: “.memory_get_peak_usage().” bytes \n”;

$data = getrusage();

echo “User time: “.

($data[‘ru_utime.tv_sec’] +

$data[‘ru_utime.tv_usec’] / 1000000);

echo “System time: “.

($data[‘ru_stime.tv_sec’] +

$data[‘ru_stime.tv_usec’] / 1000000);

?>

gzcompress(), gzuncompress()

这两个函数用来压缩和解压字符串数据。它们的压缩率能达到50% 左右。另外的函数 gzencode() 和 gzdecode() 也能达到类似结果,但使用了不同的压缩算法。

用法:

<?php

$string =

“Lorem ipsum dolor sit amet, consectetur

adipiscing elit. Nunc ut elit id mi ultricies

adipiscing. Nulla facilisi. Praesent pulvinar,

sapien vel feugiat vestibulum, nulla dui pretium orci,

non ultricies elit lacus quis ante. Lorem ipsum dolor

sit amet, consectetur adipiscing elit. Aliquam

pretium ullamcorper urna quis iaculis. Etiam ac massa

sed turpis tempor luctus. Curabitur sed nibh eu elit

mollis congue. Praesent ipsum diam, consectetur vitae

ornare a, aliquam a nunc. In id magna pellentesque

tellus posuere adipiscing. Sed non mi metus, at lacinia

augue. Sed magna nisi, ornare in mollis in, mollis

sed nunc. Etiam at justo in leo congue mollis.

Nullam in neque eget metus hendrerit scelerisque

eu non enim. Ut malesuada lacus eu nulla bibendum

id euismod urna sodales. “;

$compressed = gzcompress($string);

$original = gzuncompress($compressed);

?>

你是否也想到了还有其它很有用的函数?请在评论里分享出来!

TAGS:
八月 5th, 2017

这次处理的问题是网友提供的服务器环境中安装的WDCP环境,但是不知他操作什么了,导致php -v和phpinfo文件看到两个不同的PHP版本,然后导致在php.ini安装的组件需要运行并非在当前WEB环境中运行。我们需要将其中一个PHP版本限制掉只使用一个PHP版本。

在操作之前一定要先备份好数据,万一有不测风云我们还可以去恢复数据。

第一、查看当前php.ini

这里可以看到有3个php.ini文件,默认php -v看到的是/etc/php.ini配置PHP版本,而站点是用到PHP5.6.30版本。

第二、添加变量默认php版本

vi /etc/profile

原本我们需要删除不准备启用的PHP版本文件的,担心删除错了锁定不删除,反正默认过去后不影响,这里我们需要在profile文件中默认指定PHP版本。

export PATH=”/www/wdlinux/apache_php-5.6.30/bin:$PATH”

添加变量默认php版本

这里要指定当前PHP全局是5.6.30版本,所以添加上面脚本。

source /etc/profile

然后执行命令看是否有报错,没报错就OK。

解决服务器环境2个PHP版本不统一问题 php -v和phpinfo不同版本

这里可以看到php -v和phpinfo是一样的PHP版本,问题可以得到解决。

 

七月 31st, 2017

变量是存储信息的容器:

实例

<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>

类似代数

x=5
y=6
z=x+y

在代数中我们使用字母(比如 x)来保存值(比如 5)。

从上面的表达式 z=x+y,我们能够计算出 z 的值是 11。

在 PHP 中,这三个字母被称为变量

注释:请把变量视为存储数据的容器。

PHP 变量

正如代数,PHP 变量可用于保存值(x=5)和表达式(z=x+y)。

变量的名称可以很短(比如 x 和 y),也可以取更具描述性的名称(比如 carname、total_volume)。

PHP 变量规则:

  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)

注释:PHP 变量名称对大小写敏感!

创建 PHP 变量

PHP 没有创建变量的命令。

变量会在首次为其赋值时被创建:

实例

<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>

以上语句执行后,变量 txt 会保存值 Hello world!,变量 x 会保存值 5,变量 y 会保存值 10.5。

注释:如果您为变量赋的值是文本,请用引号包围该值。

PHP 是一门类型松散的语言

在上面的例子中,请注意我们不必告知 PHP 变量的数据类型。

PHP 根据它的值,自动把变量转换为正确的数据类型。

在诸如 C 和 C++ 以及 Java 之类的语言中,程序员必须在使用变量之前声明它的名称和类型。

PHP 变量作用域

在 PHP 中,可以在脚本的任意位置对变量进行声明。

变量的作用域指的是变量能够被引用/使用的那部分脚本。

PHP 有三种不同的变量作用域:

  • local(局部)
  • global(全局)
  • static(静态)

Local 和 Global 作用域

函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。

函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。

下面的例子测试了带有局部和全局作用域的变量:

实例

<?php
$x=5; // 全局作用域

function myTest() {
  $y=10; // 局部作用域
  echo "<p>测试函数内部的变量:</p>";
  echo "变量 x 是:$x";
  echo "<br>";
  echo "变量 y 是:$y";
} 

myTest();

echo "<p>测试函数之外的变量:</p>";
echo "变量 x 是:$x";
echo "<br>";
echo "变量 y 是:$y";
?>

在上例中,有两个变量 $x 和 $y,以及一个函数 myTest()。$x 是全局变量,因为它是在函数之外声明的,而 $y 是局部变量,因为它是在函数内声明的。

如果我们在 myTest() 函数内部输出两个变量的值,$y 会输出在本地声明的值,但是无法 $x 的值,因为它在函数之外创建。

然后,如果在 myTest() 函数之外输出两个变量的值,那么会输出 $x 的值,但是不会输出 $y 的值,因为它是局部变量,并且在 myTest() 内部创建。

注释:您可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。

PHP global 关键词

global 关键词用于访问函数内的全局变量。

要做到这一点,请在(函数内部)变量前面使用 global 关键词:

实例

<?php
$x=5;
$y=10;

function myTest() {
  global $x,$y;
  $y=$x+$y;
}

myTest();
echo $y; // 输出 15
?>

PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。

上面的例子可以这样重写:

实例

<?php
$x=5;
$y=10;

function myTest() {
  $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
} 

myTest();
echo $y; // 输出 15
?>

PHP static 关键词

通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。

要完成这一点,请在您首次声明变量时使用 static 关键词:

实例

<?php

function myTest() {
  static $x=0;
  echo $x;
  $x++;
}

myTest();
myTest();
myTest();

?>

然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。

注释:该变量仍然是函数的局部变量。

七月 31st, 2017

PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。

基础 PHP 语法

PHP 脚本可放置于文档中的任何位置。

PHP 脚本以 <?php 开头,以 ?> 结尾:

<?php
// 此处是 PHP 代码
?>

PHP 文件的默认文件扩展名是 “.php”。

PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。

下面的例子是一个简单的 PHP 文件,其中包含了使用内建 PHP 函数 “echo” 在网页上输出文本 “Hello World!” 的一段

PHP 脚本:

实例

<!DOCTYPE html>
<html>
<body>

<h1>我的第一张 PHP 页面</h1>

<?php
echo "Hello World!";
?>

</body>
</html>

注释:PHP 语句以分号结尾(;)。PHP 代码块的关闭标签也会自动表明分号(因此在 PHP 代码块的最后一行不必使用分号)。

PHP 中的注释

PHP 代码中的注释不会被作为程序来读取和执行。它唯一的作用是供代码编辑者阅读。

注释用于:

  • 使其他人理解您正在做的工作 – 注释可以让其他程序员了解您在每个步骤进行的工作(如果您供职于团队)
  • 提醒自己做过什么 – 大多数程序员都曾经历过一两年后对项目进行返工,然后不得不重新考虑他们做过的事情。注释可以记录您在写代码时的思路。

PHP 支持三种注释:

实例

<!DOCTYPE html>
<html>
<body>

<?php
// 这是单行注释

# 这也是单行注释

/*
这是多行注释块
它横跨了
多行
*/
?>

</body>
</html>

PHP 大小写敏感

在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感。

在下面的例子中,所有这三条 echo 语句都是合法的(等价):

实例

<!DOCTYPE html>
<html>
<body>

<?php
ECHO "Hello World!<br>";
echo "Hello World!<br>";
EcHo "Hello World!<br>";
?>

</body>
</html>

不过在 PHP 中,所有变量都对大小写敏感。

在下面的例子中,只有第一条语句会显示 $color 变量的值(这是因为 $color、$COLOR 以及 $coLOR 被视作三个不同的变量):

实例

<!DOCTYPE html>
<html>
<body>

<?php
$color="red";
echo "My car is " . $color . "<br>";
echo "My house is " . $COLOR . "<br>";
echo "My boat is " . $coLOR . "<br>";
?>

</body>
</html>