我几乎包括page_protect()中的每一页; .我已经使用用户ID为userid $ userid创建了一个变量.因此,每次在每个页面上调用SESSION_id比获取id更容易.
如何在函数外使用该函数内的变量?
我正在写一个脚本,它会多次从输入文件中的单词中选择一个随机单词.现在调用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) 就像现在一样,我将我的类系统嵌入到我的核心类中.所以我这样称呼我的课程:
$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)
有没有办法为整个类设置全局,而不是必须在每个函数的开头定义它?
我的开源项目工作正常,直到我在休息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从数据库加载一些数据,但由于某种原因,当我把它放在一个函数中时它不起作用.如果我在没有函数的情况下尝试代码,它可以正常工作:
//$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的新手,我正在寻找一种方法来定义某些对象,从整个项目中可以从多个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脚本之一访问此对象.这次尝试失败了.
有一些类似的方法吗?
谢谢.
我写了一个类来设置和过期浏览器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) 我想设置一些全局变量来存储几件事.我试过这样的:
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;但没有帮助.
让它全球化的诀窍是什么?
谢谢
我知道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) $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)
两者都不起作用。