相关疑难解决方法(0)

PHP:变量里面的函数在函数外面使用它?

我几乎包括page_protect()中的每一页; .我已经使用用户ID为userid $ userid创建了一个变量.因此,每次在每个页面上调用SESSION_id比获取id更容易.

如何在函数外使用该函数内的变量?

php

3
推荐指数
1
解决办法
5785
查看次数

PHP中的全局变量

我正在写一个脚本,它会多次从输入文件中的单词中选择一个随机单词.现在调用file()多次似乎效率低下,所以我想要为文件中的单词设置一个全局数组,并将一个函数加载到数组中(在选择随机单词之前调用).为什么不起作用?

global $words;

function init_words($file)
{
    $words = file($file);
    $count = count($words);
    echo "$count words<br>\n"; // "3 words"
}

init_words("/foo/bar");
$count = count($words);
echo "$count words<br>\n"; // "0 words" 
Run Code Online (Sandbox Code Playgroud)

php

3
推荐指数
1
解决办法
1941
查看次数

设置一个全局而不是每个函数?

就像现在一样,我将我的类系统嵌入到我的核心类中.所以我这样称呼我的课程:

$cms->userClass->function();
Run Code Online (Sandbox Code Playgroud)

但这意味着对于我在userClass中的每个函数,我总是需要添加:

global $cms;
Run Code Online (Sandbox Code Playgroud)

为此能够访问数据库类:

$cms->db->function();
Run Code Online (Sandbox Code Playgroud)

有没有办法为整个类设置全局,而不是必须在每个函数的开头定义它?

php

2
推荐指数
1
解决办法
119
查看次数

PHP:非法的字符串偏移量

的开源项目工作正常,直到我在休息6个月后开始工作.更新到最新的XAMPP,并开始收到大量奇怪的错误,其中一个是:

我有Input类,调用方法如下:

<?php
class Input
{
    public function __call ( $name , $arguments )
    {
        if ( !in_array( $name, array( "post", "get", "cookie", "request", "server", "env" ) ) )
        {
            throw new Exception( "Input::" . $name . "() not declared!" );
        }

        $_name_of_superglobal = "_" . strtoupper( $name );
        $_max_iteration_level_for_cleanup = in_array( $name, array( "server", "env" ) ) ? 1 : 10;

        # $arguments[0] is the index of the value, to be fetched from within the array.
        if …
Run Code Online (Sandbox Code Playgroud)

php

2
推荐指数
2
解决办法
1万
查看次数

在PHP函数中查询数据库

我正在尝试使用PHP从数据库加载一些数据,但由于某种原因,当我把它放在一个函数中时它不起作用.如果我在没有函数的情况下尝试代码,它可以正常工作:

//$dbc connection
$call1 = 0;
$output = '';
$query = "select * from artists order by lname limit $call1, 15";
$result = mysqli_query($dbc, $query);
while($row = mysqli_fetch_array($result)){
    $output .= "<ul>";
    $output .= "<li>" . $row['name'] . "</li>";
    $output .= "</ul>";
}
Run Code Online (Sandbox Code Playgroud)

但是,当我将代码更改为函数内部时,我没有从数据库中获取任何内容(或者至少它不会返回任何内容):

//$dbc connection
$call1 = 0;
$output = '';
function loadArtists($call){
    $query = "select * from artists order by lname limit $call, 15";
    $result = mysqli_query($dbc, $query);
    while($row = mysqli_fetch_array($result)){
        $output .= "<ul>";
        $output .= "<li>" . $row['name'] …
Run Code Online (Sandbox Code Playgroud)

php mysql

2
推荐指数
1
解决办法
2897
查看次数

整个项目的Php全局变量

我是PHP的新手,我正在寻找一种方法来定义某些对象,从整个项目中可以从多个PHP脚本中全局访问.

在Java中,如果我在全球范围内访问某些对象,我定义命名一些公共类Globals,并定义我需要访问的对象静态Globals类.然后,我随时随地访问这些对象:Globals.variable_name.

基本上,我只需要初始化这些全局对象一次,然后在需要时使用它们.

一个用例:

我有一个名为的类Logger,它具有在日志文件中记录某些事件的方法.我需要有一个Logger实例/对象可供项目中的所有PHP脚本使用,无论何时他们要记录一些东西.我宁愿不让每个PHP脚本使用它自己的实例Logger.

我试过的天真的Java式方法,但没有用:

我创建了一个名为公共类Globals在一个单独的PHP文件(名为Globals.php)一个静态类型的对象Logger,命名$logHandle.我把这个PHP文件包含在我需要这个Logger对象的所有其他PHP文件中.然后我尝试使用Globals->logHandle其他PHP脚本之一访问此对象.这次尝试失败了.

有一些类似的方法吗?

谢谢.

php

2
推荐指数
1
解决办法
3234
查看次数

对OOP不熟悉,如何将类公共变量设置为全局变量以用于静态方法?

我写了一个类来设置和过期浏览器cookie.我试图将类公共变量设置为全局变量的值,以允许我静态使用类方法.基本上我想要做的就是删除重复的全局$settings$expire$domain变量.

这是我的代码:

<?php

    class cookies {
        public static function set($name, $value, $date = false) {
            global $settings;

            $expire = ($date) ? $date : $settings['expire'];
            $domain = str_replace('www.', '', $settings['domain']);
            setcookie($name, $value, $expire, '/', $domain);
        }

        public static function clear() {
            global $settings;

            $domain = str_replace('www.', '', $settings['domain']);
            setcookie('test1', '', 1, '/', $domain);
            setcookie('test2', '', 1, '/', $domain);
        }
    }

?>
Run Code Online (Sandbox Code Playgroud)

php oop

2
推荐指数
1
解决办法
123
查看次数

php新手问题:web的全局变量

我想设置一些全局变量来存储几件事.我试过这样的:

function init_web()
{
    $webname = "myweb";
    $web['webname'] = $webname;
    $web['server_root'] = $_SERVER['DOCUMENT_ROOT']."/$webname/"; 
    $web['lang']="en";
}
Run Code Online (Sandbox Code Playgroud)

问题是我无法访问函数内部的那些变量..我尝试过使用global $web;但没有帮助.

让它全球化的诀窍是什么?

谢谢

php global-variables

1
推荐指数
1
解决办法
111
查看次数

自定义错误处理程序,用于处理对象代码内外的错误

我知道Stackoverflow上有很多与自定义错误处理程序相关的问题.但是,在阅读了其中许多内容以及PHP手册之后,我仍然无法解决我的问题.因此我发布了这个问题.

我的脚本目前以这种方式构建:

require 'file.php';
require 'anotherFile.php';
// several more "require" here. These files contain many functions

function myErrorHandler($errno, $errstr, $errfile, $errline, $errcontext){
    // some code to handle errors here

}

class myObject {
    function __construct() {
        // set the values here
    }

    function computeSomething() {
        ...
        doFunction2();
        ...
    }

    function SomethingBadHappened()
    {
    }
}

function doFunction1() {
    // for some reason, an error happens here
    // it is properly handled by the current error handler
}

function doFunction2() {
    // …
Run Code Online (Sandbox Code Playgroud)

php oop error-handling procedural-programming

1
推荐指数
1
解决办法
1659
查看次数

PHP函数内部的访问数组

$userinfo在php函数中访问具有相同名称的数组

<?php 
    $userinfo['name'] = "bob";
    $userinfo['lastname'] = "johnson";

    function displayinfo() {
//not working 
    echo $userinfo['name']
//global also not working 
    echo global $userinfo['lastname'];

    }
    displayinfo();

?>
Run Code Online (Sandbox Code Playgroud)

$userinfo由于变量名称中有多个数组,如何在var中访问数组?

echo $userinfo['name']
//global also not working 
echo global $userinfo['lastname'];
Run Code Online (Sandbox Code Playgroud)

两者都不起作用。

php arrays global function global-variables

0
推荐指数
1
解决办法
48
查看次数