php.ini中allow_call_time_pass_reference参数的意思

从php手册中可以找到: allow_call_time_pass_reference boolean

是否启用在函数调用时强制参数被按照引用传递。此方法已不被赞成并在 PHP/Zend 未来的版本中很可能不再支持。鼓励使用的方法是在函数定义中指定哪些参数应该用引用传递。鼓励大家尝试关闭此选项并确保脚本能够正常运行,以确保该脚本也能在未来的版本中运行(每次使用此特性都会收到一条警告,参数会被按值传递而不是按照引用传递)。

在函数调用时通过引用传递参数是不推荐的,因为它影响到了代码的整洁。如果函数的参数没有声明作为引用传递,函数可以通过未写入文档的方法修改其参数。要避免其副作用,最好仅在函数声明时指定那个参数需要通过引用传递。

当allow_call_time_pass_reference=Off时 <?php
function abc($a,$b){
    echo "$a/n";
    echo "$b/n";
    $b = 'cde';
}

$a = 'abc';
$b = "bcd";
//不好的用法,会引发一个php warnning
abc($a ,&$b);

echo "$b/n";
?>
要想通过引用来传递参数$b,程序可改为
<?php
function abc($a,& $b){
    echo "$a/n";
    echo "$b/n";
    $b = 'cde';
}

$a = 'abc';
$b = "bcd";
//正确的用法
abc($a ,$b);

echo "$b/n";
//output is:
//abc
//bcd
//cde
?>
### MySQL配置文件my.ini中default_time_zone参数的正确设置方法 在MySQL的`my.ini`配置文件中,`default-time_zone`参数用于设置数据库服务器的默认时区。如果需要将时区设置为东八区(北京时间),可以通过以下方式完成配置[^2]。 #### 配置步骤 1. **创建或编辑`my.ini`文件** 如果尚未创建`my.ini`文件,请在MySQL安装目录下新建一个名为`my.ini`的文件,并用文本编辑器(如记事本)打开。 2. **添加`default-time_zone`参数** 在`[mysqld]`部分添加如下内容: ```ini [mysqld] # 设置时区为东八区 default-time_zone = '+8:00' ``` 3. **确保路径正确** 根据引用中的描述,`basedir`和`datadir`参数需要设置为实际的MySQL安装路径和数据存放路径。例如: ```ini basedir=D:\MySQLDB\mysql-8.0.22-winx64 datadir=D:\MySQLDB\mysql-8.0.22-winx64\data ``` 4. **保存并重启MySQL服务** 保存`my.ini`文件后,重启MySQL服务以使更改生效。可以通过以下命令重启服务: ```cmd net stop mysql net start mysql ``` #### 验证时区设置 可以通过以下SQL语句验证时区是否设置成功: ```sql SHOW VARIABLES LIKE 'time_zone'; ``` 如果返回值为`+08:00`,则说明时区已成功设置为东八区[^5]。 #### 注意事项 - `default-time_zone`参数仅影响新连接的会话时区。如果需要更改现有会话的时区,可以使用`SET time_zone`语句。 - 如果未设置`default-time_zone`参数,MySQL将使用系统时区作为默认值。 - 在某些情况下,可能需要将`sql_mode`参数设置为非严格模式以避免时间相关错误。例如: ```ini sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ``` ```ini [mysqld] # 设置时区为东八区 default-time_zone = '+8:00' # 其他常用配置 port=3306 basedir=D:\MySQLDB\mysql-8.0.22-winx64 datadir=D:\MySQLDB\mysql-8.0.22-winx64\data max_connections=200 max_connect_errors=10 character-set-server=utf8mb4 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值