print_r ( $array/$var )
print 是打印的意思,而r则取自Array的单词,那么该函数的功能就是打印数组内容,它既可以打印数组内容,也可以打印普通的变量。
print_r ($_REQUEST) ;
print_r ($_GET) ; /* 打印使用GET方法传递的表单内容*/
print_r($_POST) ; /* 打印使用表单POST方法传递过的数组内容*/
2、 var_dump ($object/$array/$var)
var 代表变量(Variable),变量包括对象、数组以及标量变量,dump有倒出之意,加在一块,就是将变量或对象的内容全部输出出来。
var_dump($DB) ; /*打印$DB数据库连接对象的内容*/
var_dump($fileHandle) ; /*打印文件句柄对象的内容*/
var_dump($Smarty) ; /*打印Smarty模板对象*/
var_dump($DB,$Smarty,$fileHandle) ; /*打印多个变量*/
3、 var_export($object/$array/$var ,[bool ] )
输出或返回一个变量的字符表示。此函数返回关于传递给函数的变量的结构信息,它和print_r()类似,不同的是其返回的表示是合法的PHP代码。可以通过将函数的第二个参数设置为TRUE,从而返回变量的表示。
看下面代码:
<?php
$a = array (1,2, array(“a”,”b”,”c”)) ;
var_export ($a) ;
echo “<br>” ;
$v = var_export ($a , TRUE) ;
echo $v ;
?>
上例中,$v = var_export ( $a , TRUE) 表示返回的是PHP的源代码,可以直接用PHP脚本的数组文件中。
总结说明:
以上三个函数都可以打印对象的值、系统函数值以及数组的内容;
1、 echo 、print、printf可以打印变量内容,但不能显示数组及系统超级变量数组;
2、 print_r 和 var_dump不仅可以打印数组、标量变量,还可以打印对象的内容;
3、 var_dump语句不仅能打印变量、数组内容,还可以显示布尔变量和资源(Resource)的内容;
4、var_export 函数返回关于传递给该函数的变量的结构信息,和 var_dump()函数类似,不同的是其返回的内容是合法的PHP代码。

在工作中有可能需要多版本的支持,本教程已经安装了lnmp的php5.6版本。再安装php7.1.2
1.安装更新包
yum install epel-release //扩展包更新包
yum update //更新yum源

2.安装mcrypt

yum install -y libmcrypt libmcrypt-devel

3.下载php并安装(下载略)

./configure –prefix=/usr/local/php7 –with-config-file-path=/usr/local/php7/etc –enable-fpm –with-fpm-user=www –with-fpm-group=www –enable-mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-iconv-dir –with-freetype-dir=/usr/local/freetype –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-mbstring –enable-intl –enable-pcntl –with-mcrypt –enable-ftp –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –with-gettext –disable-fileinfo –enable-opcache –with-xsl

3.1编译出现错误
/root/php-7.1.2/ext/xmlrpc/libxmlrpc/encodings.c:102: undefined reference to `libiconv_close’
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] 错误 1
解决办法
vi Makefile

找到下面这行:

EXTRA_LIBS = -lcrypt …

在最后添加-liconv
4.配置

cp php.ini-production /usr/local/php7/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
chmod +x /etc/init.d/php7-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

5.配置opcache
vim /usr/local/php7/etc/php.ini
zend_extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/opcache.so

6.因为之前以及有php5.6已经监听了9000,那么php7就监听9001端口
vi /usr/local/php7/etc/php-fpm.d/php-fpm.conf
listen = 127.0.0.1:9001

7.启动
/etc/init.d/php7-fpm start
8.查看PHP版本
cp /usr/local/php7/bin/php /usr/bin/php7
php7 -v

PHP 7.1.2 (cli) (built: Mar 5 2017 15:43:51) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.2, Copyright (c) 1999-2017, by Zend Technologies

php7install安装说明

$data = array(“name” => “Hagrid”, “age” => “36”);
$data_string = json_encode($data);

$ch = curl_init(‘http://api.local/rest/users’);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, “POST”);
curl_setopt($ch, CURLOPT_POSTFIELDS,$data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
‘Content-Type: application/json’,
‘Content-Length: ‘ . strlen($data_string))
);

$result = curl_exec($ch);

curlpostjson

Linux下PHP已经编译,如何新增so扩展。

PHP下载地址:http://cl1.php.net/distributions/php-5.5.14.tar.gz

用到的一个sh:/usr/local/php/bin/phpize

原理:用phpize在压缩包里面找到对应的对应的扩展文件夹,在里面执行phpize,具体步骤:

PHP安装路径:/usr/local/php

PHP源码路径:/root/php-5.5.14

扩展假设zlib:/root/php-5.5.14/ext/bz2

执行代码:

ln -s /usr/local/php/bin/phpize /usr/bin/phpize

cd /root/php-5.5.14/ext/bz2

phpize

//这里提示报错,安装bzip2,bzip2-devel configure: error: Please reinstall the BZip2 distribution

//yum install -y bzip2 bzip2-devel

./configure –with-php-config=/usr/local/php/bin/php-config

make

make test

make install

vim /etc/php.ini ##加入extension=bz2.so